Skip to content

Commit a45e4e0

Browse files
refactor: VaultTabs
1 parent cd4101a commit a45e4e0

File tree

6 files changed

+50
-105
lines changed

6 files changed

+50
-105
lines changed

apps/main/src/lend/components/PageLoanCreate/LoanCreateTabs.tsx

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,13 @@ const useOnFormUpdate = ({ api, market }: Pick<CreateLoanProps, 'api' | 'market'
3535

3636
function CreateLoanTab({ market, api, rChainId }: CreateLoanProps) {
3737
const onLoanCreated = useStore((state) => state.loanCreate.onLoanCreated)
38+
const onCreated = useCallback(
39+
async () => api && market && (await onLoanCreated(api, market)),
40+
[api, market, onLoanCreated],
41+
)
42+
const onUpdate = useOnFormUpdate({ market, api })
3843
return (
39-
<CreateLoanForm
40-
networks={networks}
41-
chainId={rChainId}
42-
market={market}
43-
onUpdate={useOnFormUpdate({ market, api })}
44-
onCreated={useCallback(
45-
async () => api && market && (await onLoanCreated(api, market)),
46-
[api, market, onLoanCreated],
47-
)}
48-
/>
44+
<CreateLoanForm networks={networks} chainId={rChainId} market={market} onUpdate={onUpdate} onCreated={onCreated} />
4945
)
5046
}
5147

@@ -63,16 +59,8 @@ export const LendCreateTabsOldMenu = [
6359
},
6460
] satisfies FormTab<CreateLoanProps>[]
6561

66-
const LoanCreate = (pageProps: CreateLoanProps) => {
62+
export const LoanCreateTabs = (pageProps: CreateLoanProps) => {
6763
const menu = useCreateLoanMuiForm() ? LendCreateTabsNewMenu : LendCreateTabsOldMenu
68-
return (
69-
<FormTabs<CreateLoanProps>
70-
params={pageProps}
71-
menu={menu}
72-
shouldWrap={menu === LendCreateTabsOldMenu}
73-
defaultTab={pageProps.rFormType}
74-
/>
75-
)
64+
const shouldWrap = menu === LendCreateTabsOldMenu
65+
return <FormTabs params={pageProps} menu={menu} shouldWrap={shouldWrap} defaultTab={pageProps.rFormType} />
7666
}
77-
78-
export default LoanCreate

apps/main/src/lend/components/PageLoanCreate/Page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { Address } from 'viem'
33
import CampaignRewardsBanner from '@/lend/components/CampaignRewardsBanner'
44
import { MarketInformationComp } from '@/lend/components/MarketInformationComp'
55
import { MarketInformationTabs } from '@/lend/components/MarketInformationTabs'
6-
import LoanCreate from '@/lend/components/PageLoanCreate/LoanCreateTabs'
6+
import { LoanCreateTabs } from '@/lend/components/PageLoanCreate/LoanCreateTabs'
77
import { useOneWayMarket } from '@/lend/entities/chain'
88
import { useLendPageTitle } from '@/lend/hooks/useLendPageTitle'
99
import { useMarketDetails } from '@/lend/hooks/useMarketDetails'
@@ -106,7 +106,7 @@ const Page = () => {
106106
<>
107107
<DetailPageStack>
108108
<AppPageFormsWrapper data-testid="form-wrapper">
109-
{rChainId && rOwmId && <LoanCreate {...pageProps} params={params} />}
109+
{rChainId && rOwmId && <LoanCreateTabs {...pageProps} params={params} />}
110110
</AppPageFormsWrapper>
111111
<Stack flexDirection="column" flexGrow={1} sx={{ gap: Spacing.md }}>
112112
<CampaignRewardsBanner

apps/main/src/lend/components/PageLoanManage/ManageLoanTabs.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,19 +91,14 @@ export const ManageLoanTabs = ({
9191
isInSoftLiquidation,
9292
...pageProps
9393
}: ManageLoanProps & { isInSoftLiquidation: boolean | undefined }) => {
94+
const { rFormType } = pageProps
9495
const shouldUseSoftLiquidation = useManageSoftLiquidation() && isInSoftLiquidation
9596
const shouldUseManageLoanMuiForm = useManageLoanMuiForm()
9697
const menu = shouldUseSoftLiquidation
9798
? LendManageSoftLiquidationMenu
9899
: shouldUseManageLoanMuiForm
99100
? LendManageNewMenu
100101
: LendManageLegacyMenu
101-
return (
102-
<FormTabs<ManageLoanProps>
103-
params={pageProps}
104-
menu={menu}
105-
shouldWrap={menu === LendManageLegacyMenu}
106-
defaultTab={pageProps.rFormType}
107-
/>
108-
)
102+
const shouldWrap = menu === LendManageLegacyMenu
103+
return <FormTabs params={pageProps} menu={menu} shouldWrap={shouldWrap} defaultTab={rFormType} />
109104
}

apps/main/src/lend/components/PageVault/Page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'
22
import CampaignRewardsBanner from '@/lend/components/CampaignRewardsBanner'
33
import { MarketInformationComp } from '@/lend/components/MarketInformationComp'
44
import { MarketInformationTabs } from '@/lend/components/MarketInformationTabs'
5-
import Vault from '@/lend/components/PageVault/index'
5+
import { VaultTabs } from '@/lend/components/PageVault/VaultTabs'
66
import { useOneWayMarket } from '@/lend/entities/chain'
77
import { useLendPageTitle } from '@/lend/hooks/useLendPageTitle'
88
import { useMarketDetails } from '@/lend/hooks/useMarketDetails'
@@ -119,7 +119,7 @@ const Page = () => {
119119
) : provider ? (
120120
<>
121121
<DetailPageStack>
122-
<AppPageFormsWrapper>{rChainId && rOwmId && <Vault {...pageProps} params={params} />}</AppPageFormsWrapper>
122+
<AppPageFormsWrapper>{rChainId && rOwmId && <VaultTabs {...pageProps} params={params} />}</AppPageFormsWrapper>
123123
<Stack flexDirection="column" flexGrow={1} sx={{ gap: Spacing.md }}>
124124
<CampaignRewardsBanner
125125
chainId={rChainId}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import VaultClaim from '@/lend/components/PageVault/VaultClaim'
2+
import VaultDepositMint from '@/lend/components/PageVault/VaultDepositMint'
3+
import VaultStake from '@/lend/components/PageVault/VaultStake'
4+
import VaultUnstake from '@/lend/components/PageVault/VaultUnstake'
5+
import VaultWithdrawRedeem from '@/lend/components/PageVault/VaultWithdrawRedeem'
6+
import { type MarketUrlParams, PageContentProps } from '@/lend/types/lend.types'
7+
import { t } from '@ui-kit/lib/i18n'
8+
import { FormTab, FormTabs } from '@ui-kit/shared/ui/FormTabs/FormTabs'
9+
10+
type VaultProps = PageContentProps<MarketUrlParams>
11+
12+
const menu = [
13+
{
14+
value: 'deposit',
15+
label: t`Deposit`,
16+
subTabs: [
17+
{ value: 'deposit', label: t`Deposit`, component: (p) => <VaultDepositMint {...p} rFormType="deposit" /> },
18+
{ value: 'stake', label: t`Stake`, component: (p) => <VaultStake {...p} rFormType="stake" /> },
19+
],
20+
},
21+
{
22+
value: 'withdraw',
23+
label: t`Withdraw`,
24+
subTabs: [
25+
{ value: 'withdraw', label: t`Withdraw`, component: (p) => <VaultWithdrawRedeem {...p} rFormType="withdraw" /> },
26+
{ value: 'unstake', label: t`Unstake`, component: (p) => <VaultUnstake {...p} rFormType="unstake" /> },
27+
{ value: 'claim', label: t`Claim Rewards`, component: (p) => <VaultClaim {...p} rFormType="claim" /> },
28+
],
29+
},
30+
] satisfies FormTab<VaultProps>[]
31+
32+
export const VaultTabs = (pageProps: VaultProps) => (
33+
<FormTabs params={pageProps} menu={menu} shouldWrap defaultTab={pageProps.rFormType} />
34+
)

apps/main/src/lend/components/PageVault/index.tsx

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)