diff options
author | Sebastian <sebasjm@gmail.com> | 2024-04-04 13:07:52 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-04-04 13:07:52 -0300 |
commit | 7c5aed3fcc8fec2da8c6dfdba7eedf6d0c941a12 (patch) | |
tree | 54344fb1facde3406582650df2c85abee2044b04 /packages/bank-ui/src/hooks | |
parent | cd95816af555713a4ec8ff211d7a829d68a0cf32 (diff) | |
download | wallet-core-7c5aed3fcc8fec2da8c6dfdba7eedf6d0c941a12.tar.xz |
pretty
Diffstat (limited to 'packages/bank-ui/src/hooks')
-rw-r--r-- | packages/bank-ui/src/hooks/account.ts | 47 | ||||
-rw-r--r-- | packages/bank-ui/src/hooks/regional.ts | 51 | ||||
-rw-r--r-- | packages/bank-ui/src/hooks/session.ts | 5 |
3 files changed, 76 insertions, 27 deletions
diff --git a/packages/bank-ui/src/hooks/account.ts b/packages/bank-ui/src/hooks/account.ts index 543c49aed..e1cd423de 100644 --- a/packages/bank-ui/src/hooks/account.ts +++ b/packages/bank-ui/src/hooks/account.ts @@ -45,7 +45,9 @@ export function revalidateAccountDetails() { export function useAccountDetails(account: string) { const { state: credentials } = useSessionState(); - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); async function fetcher([username, token]: [string, AccessToken]) { return await api.getAccount({ username, token }); @@ -71,7 +73,9 @@ export function revalidateWithdrawalDetails() { } export function useWithdrawalDetails(wid: string) { - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); const [latestStatus, setLatestStatus] = useState<WithdrawalOperationStatus>(); async function fetcher([wid, old_state]: [ @@ -124,7 +128,9 @@ export function useTransactionDetails(account: string, tid: number) { const { state: credentials } = useSessionState(); const token = credentials.status !== "loggedIn" ? undefined : credentials.token; - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); async function fetcher([username, token, txid]: [ string, @@ -167,7 +173,9 @@ export function usePublicAccounts( ) { const [offset, setOffset] = useState<number | undefined>(initial); - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); async function fetcher([account, txid]: [ string | undefined, @@ -203,18 +211,27 @@ export function usePublicAccounts( // if (data.type !== "ok") return data; //TODO: row_id should not be optional - return buildPaginatedResult(data.body.public_accounts, offset, setOffset, (d) => d.row_id ?? 0) + return buildPaginatedResult( + data.body.public_accounts, + offset, + setOffset, + (d) => d.row_id ?? 0, + ); } - type PaginatedResult<T> = OperationOk<T> & { isLastPage: boolean; isFirstPage: boolean; loadNext(): void; loadFirst(): void; -} +}; //TODO: consider sending this to web-util -export function buildPaginatedResult<DataType, OffsetId>(data: DataType[], offset: OffsetId | undefined, setOffset: (o: OffsetId | undefined) => void, getId: (r: DataType) => OffsetId): PaginatedResult<DataType[]> { +export function buildPaginatedResult<DataType, OffsetId>( + data: DataType[], + offset: OffsetId | undefined, + setOffset: (o: OffsetId | undefined) => void, + getId: (r: DataType) => OffsetId, +): PaginatedResult<DataType[]> { const isLastPage = data.length <= PAGE_SIZE; const isFirstPage = offset === undefined; @@ -229,7 +246,7 @@ export function buildPaginatedResult<DataType, OffsetId>(data: DataType[], offse isFirstPage, loadNext: () => { if (!result.length) return; - const id = getId(result[result.length - 1]) + const id = getId(result[result.length - 1]); setOffset(id); }, loadFirst: () => { @@ -251,7 +268,9 @@ export function useTransactions(account: string, initial?: number) { credentials.status !== "loggedIn" ? undefined : credentials.token; const [offset, setOffset] = useState<number | undefined>(initial); - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); async function fetcher([username, token, txid]: [ string, @@ -284,6 +303,10 @@ export function useTransactions(account: string, initial?: number) { if (data === undefined) return undefined; if (data.type !== "ok") return data; - return buildPaginatedResult(data.body.transactions, offset, setOffset, (d) => d.row_id) - + return buildPaginatedResult( + data.body.transactions, + offset, + setOffset, + (d) => d.row_id, + ); } diff --git a/packages/bank-ui/src/hooks/regional.ts b/packages/bank-ui/src/hooks/regional.ts index e9aa9a6be..909bcfcec 100644 --- a/packages/bank-ui/src/hooks/regional.ts +++ b/packages/bank-ui/src/hooks/regional.ts @@ -42,10 +42,10 @@ const useSWR = _useSWR as unknown as SWRHook; export type TransferCalculation = | { - debit: AmountJson; - credit: AmountJson; - beforeFee: AmountJson; - } + debit: AmountJson; + credit: AmountJson; + beforeFee: AmountJson; + } | "amount-is-too-small"; type EstimatorFunction = ( amount: AmountJson, @@ -64,7 +64,10 @@ export function revalidateConversionInfo() { ); } export function useConversionInfo() { - const { lib: { conversion }, config } = useBankCoreApiContext(); + const { + lib: { conversion }, + config, + } = useBankCoreApiContext(); async function fetcher() { return await conversion.getConfig(); @@ -90,7 +93,9 @@ export function useConversionInfo() { } export function useCashinEstimator(): ConversionEstimators { - const { lib: { conversion } } = useBankCoreApiContext(); + const { + lib: { conversion }, + } = useBankCoreApiContext(); return { estimateByCredit: async (fiatAmount, fee) => { const resp = await conversion.getCashinRate({ @@ -146,7 +151,9 @@ export function useCashinEstimator(): ConversionEstimators { } export function useCashoutEstimator(): ConversionEstimators { - const { lib: { conversion } } = useBankCoreApiContext(); + const { + lib: { conversion }, + } = useBankCoreApiContext(); return { estimateByCredit: async (fiatAmount, fee) => { const resp = await conversion.getCashoutRate({ @@ -219,7 +226,9 @@ export function useBusinessAccounts() { const { state: credentials } = useSessionState(); const token = credentials.status !== "loggedIn" ? undefined : credentials.token; - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); const [offset, setOffset] = useState<number | undefined>(); @@ -256,8 +265,12 @@ export function useBusinessAccounts() { if (data.type !== "ok") return data; //TODO: row_id should not be optional - return buildPaginatedResult(data.body.accounts, offset, setOffset, (d) => d.row_id ?? 0) - + return buildPaginatedResult( + data.body.accounts, + offset, + setOffset, + (d) => d.row_id ?? 0, + ); } type CashoutWithId = TalerCorebankApi.CashoutStatusResponse & { id: number }; @@ -274,7 +287,10 @@ export function revalidateOnePendingCashouts() { } export function useOnePendingCashouts(account: string) { const { state: credentials } = useSessionState(); - const { lib: { bank: api }, config } = useBankCoreApiContext(); + const { + lib: { bank: api }, + config, + } = useBankCoreApiContext(); const token = credentials.status !== "loggedIn" ? undefined : credentials.token; @@ -334,7 +350,10 @@ export function revalidateCashouts() { } export function useCashouts(account: string) { const { state: credentials } = useSessionState(); - const { lib: { bank: api }, config } = useBankCoreApiContext(); + const { + lib: { bank: api }, + config, + } = useBankCoreApiContext(); const token = credentials.status !== "loggedIn" ? undefined : credentials.token; @@ -390,7 +409,9 @@ export function revalidateCashoutDetails() { export function useCashoutDetails(cashoutId: number | undefined) { const { state: credentials } = useSessionState(); const creds = credentials.status !== "loggedIn" ? undefined : credentials; - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); async function fetcher([username, token, id]: [string, AccessToken, number]) { return api.getCashoutById({ username, token }, id); @@ -443,7 +464,9 @@ export function useLastMonitorInfo( previousMoment: AbsoluteTime, timeframe: TalerCorebankApi.MonitorTimeframeParam, ) { - const { lib: { bank: api } } = useBankCoreApiContext(); + const { + lib: { bank: api }, + } = useBankCoreApiContext(); const { state: credentials } = useSessionState(); const token = credentials.status !== "loggedIn" ? undefined : credentials.token; diff --git a/packages/bank-ui/src/hooks/session.ts b/packages/bank-ui/src/hooks/session.ts index 661d64415..4520d0e4a 100644 --- a/packages/bank-ui/src/hooks/session.ts +++ b/packages/bank-ui/src/hooks/session.ts @@ -86,7 +86,10 @@ export interface SessionStateHandler { logIn(info: { username: string; token: AccessToken }): void; } -const SESSION_STATE_KEY = buildStorageKey("bank-session", codecForSessionState()); +const SESSION_STATE_KEY = buildStorageKey( + "bank-session", + codecForSessionState(), +); /** * Return getters and setters for |