Skip to content

Commit ef88cdc

Browse files
committed
adds balanceMask variable
1 parent 1c096e2 commit ef88cdc

File tree

8 files changed

+37
-21
lines changed

8 files changed

+37
-21
lines changed

packages/mobile-app/app/(drawer)/account/account-settings/account-select/index.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import { Stack, useRouter } from "expo-router";
44
import { useFacade } from "@/data/facades";
55
import { CurrencyUtils } from "@ironfish/sdk";
66
import { Layout, Text, Button, Card } from "@ui-kitten/components";
7+
import { useHideBalances } from "@/hooks/useHideBalances";
78

89
export default function AccountSelect() {
910
const router = useRouter();
1011
const facade = useFacade();
12+
const { hideBalances, balanceMask } = useHideBalances();
1113

1214
const getAccountsResult = facade.getAccounts.useQuery(undefined, {
1315
refetchInterval: 1000,
@@ -41,7 +43,9 @@ export default function AccountSelect() {
4143
<Layout>
4244
<Text category="s1">{account.name}</Text>
4345
<Text category="p2" appearance="hint">
44-
{`${CurrencyUtils.render(account.balances.iron.confirmed)} $IRON`}
46+
{hideBalances
47+
? `${balanceMask} $IRON`
48+
: `${CurrencyUtils.render(account.balances.iron.confirmed)} $IRON`}
4549
</Text>
4650
</Layout>
4751
{account.active && (

packages/mobile-app/app/(drawer)/account/account-settings/index.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { useEffect, useState, useCallback } from "react";
1717
import { useAccount } from "@/providers/AccountProvider";
1818
import { SafeAreaView } from "react-native";
1919
import { Spinner } from "@ui-kitten/components";
20+
import { useHideBalances } from "@/hooks/useHideBalances";
2021

2122
const ForwardIcon = (props: any): IconElement => (
2223
<Icon {...props} name="arrow-ios-forward" />
@@ -49,15 +50,17 @@ function getMenuItems({
4950
currentAccountName,
5051
currentAccountBalance,
5152
hideBalances,
53+
balanceMask,
5254
}: {
5355
currentAccountName: string;
5456
currentAccountBalance: string;
5557
hideBalances: boolean;
58+
balanceMask: string;
5659
}) {
5760
return Object.entries(ACCOUNT_SETTINGS_ROUTES).map(([key, route]) => {
5861
if (key === "accountSelect") {
5962
return {
60-
title: `${currentAccountName} (${hideBalances ? "•••••" : currentAccountBalance} $IRON)`,
63+
title: `${currentAccountName} (${hideBalances ? balanceMask : currentAccountBalance} $IRON)`,
6164
href: route.href,
6265
};
6366
}
@@ -74,8 +77,9 @@ function getMenuItems({
7477
function AccountSettingsContent({ accountName }: { accountName: string }) {
7578
const router = useRouter();
7679
const facade = useFacade();
80+
const { balanceMask } = useHideBalances();
7781

78-
// I tried using isPending and variables on the mutation, but it was causing toggle
82+
// I tried using the useHideBalances hook but it was causing toggle
7983
// re-renders that made the toggle animation jittery.
8084
const appSettings = facade.getAppSettings.useQuery();
8185
const [hideBalances, setHideBalances] = useState(false);
@@ -110,6 +114,7 @@ function AccountSettingsContent({ accountName }: { accountName: string }) {
110114
getAccountResult.data?.balances.iron.confirmed ?? "0",
111115
),
112116
hideBalances,
117+
balanceMask,
113118
});
114119

115120
const handleSelect = (index: number) => {

packages/mobile-app/app/(drawer)/account/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ interface Balance {
4848
}
4949

5050
export default function Balances() {
51-
const hideBalances = useHideBalances();
51+
const { hideBalances, balanceMask } = useHideBalances();
5252
const facade = useFacade();
5353
const { account, accountName, isLoading } = useAccount();
5454
const scrollYOffset = useSharedValue(0);
@@ -193,7 +193,7 @@ export default function Balances() {
193193
<Layout style={styles.headerBalance}>
194194
<Text category="h1" style={styles.balanceAmount}>
195195
{hideBalances
196-
? "•••••"
196+
? balanceMask
197197
: CurrencyUtils.render(
198198
account?.balances.iron.confirmed ?? "0",
199199
)}

packages/mobile-app/app/(drawer)/account/send/index.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ type TransactionState = "sending" | "sent" | "idle";
4343
export default function Send() {
4444
const facade = useFacade();
4545
const router = useRouter();
46-
const hideBalances = useHideBalances();
46+
const { hideBalances, balanceMask } = useHideBalances();
4747

4848
const [selectedAssetId, setSelectedAssetId] =
4949
useState<string>(IRON_ASSET_ID_HEX);
@@ -103,7 +103,7 @@ export default function Send() {
103103
const options = [
104104
{
105105
id: IRON_ASSET_ID_HEX,
106-
title: `IRON (${hideBalances ? "•••••" : CurrencyUtils.render(getAccountResult.data?.balances.iron.available ?? "0")})`,
106+
title: `IRON (${hideBalances ? balanceMask : CurrencyUtils.render(getAccountResult.data?.balances.iron.available ?? "0")})`,
107107
},
108108
];
109109

@@ -114,7 +114,7 @@ export default function Send() {
114114
id: b.assetId,
115115
title: `${asset.name} (${
116116
hideBalances
117-
? "•••••"
117+
? balanceMask
118118
: CurrencyUtils.render(
119119
b.available,
120120
false,
@@ -129,7 +129,7 @@ export default function Send() {
129129
});
130130

131131
return options;
132-
}, [getAccountResult.data, assetMap, hideBalances]);
132+
}, [getAccountResult.data, assetMap, hideBalances, balanceMask]);
133133

134134
// Find the selected asset index
135135
const selectedIndex = useMemo(() => {
@@ -310,7 +310,7 @@ export default function Send() {
310310
{transactionState === "sending" ? "Sending..." : "Sent!"}
311311
</Text>
312312
<Text category="s1" style={styles.amountText}>
313-
{hideBalances ? "•••••" : amount}{" "}
313+
{hideBalances ? balanceMask : amount}{" "}
314314
{selectedAssetId === IRON_ASSET_ID_HEX
315315
? "$IRON"
316316
: (assetMap.get(selectedAssetId)?.name ?? "Unknown")}{" "}

packages/mobile-app/app/(drawer)/account/transaction/[hash].tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const CopyableText = ({ text, style }: { text: string; style?: any }) => {
5454
export default function TransactionDetails() {
5555
const { hash } = useLocalSearchParams<{ hash: string }>();
5656
const facade = useFacade();
57-
const hideBalances = useHideBalances();
57+
const { hideBalances, balanceMask } = useHideBalances();
5858

5959
const transactionQuery = facade.getTransaction.useQuery(
6060
{
@@ -183,7 +183,7 @@ export default function TransactionDetails() {
183183
</Text>
184184
<Text category="h2" style={styles.mainAmount}>
185185
{hideBalances
186-
? "•••••"
186+
? balanceMask
187187
: CurrencyUtils.render(
188188
(mainAmount < 0n ? -mainAmount : mainAmount).toString(),
189189
false,
@@ -243,8 +243,9 @@ export default function TransactionDetails() {
243243
Fee
244244
</Text>
245245
<Text style={styles.value}>
246-
{hideBalances ? "•••••" : CurrencyUtils.render(transaction.fee)}{" "}
247-
$IRON
246+
{hideBalances
247+
? balanceMask
248+
: CurrencyUtils.render(transaction.fee ?? "0")}
248249
</Text>
249250
</View>
250251
<Divider style={styles.divider} />

packages/mobile-app/components/account/AssetRow.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export function AssetRow({
1414
verified: boolean;
1515
image?: string;
1616
}) {
17-
const hideBalances = useHideBalances();
17+
const { hideBalances, balanceMask } = useHideBalances();
1818

1919
return (
2020
<Card style={styles.assetCard}>
@@ -27,7 +27,7 @@ export function AssetRow({
2727
{name} {verified ? "(Verified)" : ""}
2828
</Text>
2929
<Text category="p2" appearance="hint">
30-
{hideBalances ? "•••••" : amount}
30+
{hideBalances ? balanceMask : amount}
3131
</Text>
3232
</Layout>
3333
</Layout>

packages/mobile-app/components/account/TransactionRow.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ const assetBalanceCompare = (
9595
export function TransactionRow({ transaction }: { transaction: Transaction }) {
9696
const facade = useFacade();
9797
const router = useRouter();
98-
const hideBalances = useHideBalances();
98+
const { hideBalances, balanceMask } = useHideBalances();
9999

100100
const getAssets = useQueries({
101101
queries:
@@ -198,7 +198,7 @@ export function TransactionRow({ transaction }: { transaction: Transaction }) {
198198
color: delta.delta.startsWith("-") ? "black" : "#5BA54C",
199199
}}
200200
>
201-
{hideBalances ? "•••••" : delta.delta}
201+
{hideBalances ? balanceMask : delta.delta}
202202
</Text>
203203
</Layout>
204204
);

packages/mobile-app/hooks/useHideBalances.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@ import { useEffect, useState } from "react";
33

44
/**
55
* Hook that provides the current hide balances setting
6-
* @returns The current hide balances state
6+
* @returns Object with hideBalances state and balanceMask for consistent display
77
*/
8-
export function useHideBalances(): boolean {
8+
export function useHideBalances(): {
9+
hideBalances: boolean;
10+
balanceMask: string;
11+
} {
912
const facade = useFacade();
1013
const [hideBalances, setHideBalances] = useState(true);
1114
const appSettings = facade.getAppSettings.useQuery();
@@ -14,5 +17,8 @@ export function useHideBalances(): boolean {
1417
setHideBalances(appSettings.data?.hideBalances === "true");
1518
}, [appSettings.data?.hideBalances]);
1619

17-
return hideBalances;
20+
return {
21+
hideBalances,
22+
balanceMask: "•••••",
23+
};
1824
}

0 commit comments

Comments
 (0)