Skip to content

Commit 4ba0d56

Browse files
committed
refactor: combine query state
1 parent 7b9be3a commit 4ba0d56

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

apps/main/src/llamalend/queries/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const mapQuery = <TSource, TResult>(query: Query<TSource>, selector: (dat
1212
export const formatQueryValue = <T>(query: Query<T | null> | undefined, format: (value: NonNullable<T>) => string) =>
1313
query?.data != null ? format(query.data as NonNullable<T>) : undefined
1414

15-
export const getQueryState = (current: Query<unknown> | undefined, previous: Query<unknown> | undefined) => ({
16-
error: current?.error ?? previous?.error,
17-
loading: current?.isLoading || previous?.isLoading,
15+
export const combineQueryState = (queries: (Query<unknown> | undefined)[]) => ({
16+
error: queries && queries.reduce<Query<unknown>['error']>((acc, x) => acc ?? x?.error, undefined),
17+
loading: queries && queries.reduce<Query<unknown>['isLoading']>((acc, x) => acc || !!x?.isLoading, false),
1818
})

apps/main/src/llamalend/widgets/manage-loan/LoanInfoAccordion.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { UserState } from '@/llamalend/queries/user-state.query'
2-
import { formatQueryValue, getQueryState } from '@/llamalend/queries/utils'
2+
import { combineQueryState, formatQueryValue } from '@/llamalend/queries/utils'
33
import Box from '@mui/material/Box'
44
import Stack from '@mui/material/Stack'
55
import { useTheme } from '@mui/material/styles'
@@ -82,7 +82,7 @@ export const LoanInfoAccordion = ({
8282
value={formatQueryValue(health, (v) => formatNumber(v, { abbreviate: false }))}
8383
prevValue={formatQueryValue(prevHealth, (v) => formatNumber(v, { abbreviate: false }))}
8484
emptyValue="∞"
85-
{...getQueryState(health, prevHealth)}
85+
{...combineQueryState([health, prevHealth])}
8686
valueColor={getHealthValueColor(Number(health.data ?? prevHealth?.data ?? 100), useTheme())}
8787
testId="borrow-health"
8888
/>
@@ -97,7 +97,7 @@ export const LoanInfoAccordion = ({
9797
label={t`Debt`}
9898
value={formatQueryValue(debt, (v) => formatNumber(v.value, { abbreviate: false }))}
9999
prevValue={prevDebt && formatNumber(prevDebt, { abbreviate: false })}
100-
{...getQueryState(debt, userState)}
100+
{...combineQueryState([debt, userState])}
101101
valueRight={debt?.data?.tokenSymbol ?? userState?.borrowTokenSymbol}
102102
testId="borrow-debt"
103103
/>
@@ -107,7 +107,7 @@ export const LoanInfoAccordion = ({
107107
label={t`Collateral`}
108108
value={formatQueryValue(collateral, (v) => formatNumber(v.value, { abbreviate: false }))}
109109
prevValue={prevCollateral && formatNumber(prevCollateral, { abbreviate: false })}
110-
{...getQueryState(collateral, userState)}
110+
{...combineQueryState([collateral, userState])}
111111
valueRight={collateral?.data?.tokenSymbol ?? userState?.collateralTokenSymbol}
112112
testId="borrow-collateral"
113113
/>
@@ -141,15 +141,15 @@ export const LoanInfoAccordion = ({
141141
label={t`Borrow APR`}
142142
value={rates.data?.borrowApr && formatPercent(rates.data.borrowApr)}
143143
prevValue={prevRates?.data?.borrowApr && formatPercent(prevRates.data.borrowApr)}
144-
{...getQueryState(rates, prevRates)}
144+
{...combineQueryState([rates, prevRates])}
145145
testId="borrow-apr"
146146
/>
147147
{(loanToValue || prevLoanToValue) && (
148148
<ActionInfo
149149
label={t`Loan to value ratio`}
150150
value={formatQueryValue(loanToValue, formatPercent)}
151151
prevValue={formatQueryValue(prevLoanToValue, formatPercent)}
152-
{...getQueryState(loanToValue, prevLoanToValue)}
152+
{...combineQueryState([loanToValue, prevLoanToValue])}
153153
testId="borrow-ltv"
154154
/>
155155
)}

0 commit comments

Comments
 (0)