aboutsummaryrefslogtreecommitdiff
path: root/packages/bank-ui/src/hooks
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-04-04 13:07:52 -0300
committerSebastian <sebasjm@gmail.com>2024-04-04 13:07:52 -0300
commit7c5aed3fcc8fec2da8c6dfdba7eedf6d0c941a12 (patch)
tree54344fb1facde3406582650df2c85abee2044b04 /packages/bank-ui/src/hooks
parentcd95816af555713a4ec8ff211d7a829d68a0cf32 (diff)
downloadwallet-core-7c5aed3fcc8fec2da8c6dfdba7eedf6d0c941a12.tar.xz
pretty
Diffstat (limited to 'packages/bank-ui/src/hooks')
-rw-r--r--packages/bank-ui/src/hooks/account.ts47
-rw-r--r--packages/bank-ui/src/hooks/regional.ts51
-rw-r--r--packages/bank-ui/src/hooks/session.ts5
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