diff --git a/components/Positions.tsx b/components/Positions.tsx index 4a64453..79ff312 100644 --- a/components/Positions.tsx +++ b/components/Positions.tsx @@ -1,7 +1,7 @@ import useMangoGroup from 'hooks/useMangoGroup' import { useMemo } from 'react' import useMangoAccount from 'hooks/useMangoAccount' -import { STAKEABLE_TOKENS } from 'pages' +import { STAKEABLE_TOKENS } from 'utils/constants' const Positions = () => { const { mangoAccount } = useMangoAccount() diff --git a/components/Stake.tsx b/components/Stake.tsx index 685bf7a..a470c27 100644 --- a/components/Stake.tsx +++ b/components/Stake.tsx @@ -1,37 +1,26 @@ -import { STAKEABLE_TOKENS } from 'pages' import TokenButton from './TokenButton' -import { useCallback, useEffect, useState } from 'react' -import mangoStore from '@store/mangoStore' -import { ACCOUNT_PREFIX } from 'utils/transactions' +import { useCallback, useState } from 'react' import TabUnderline from './shared/TabUnderline' import StakeForm from '@components/StakeForm' import UnstakeForm from '@components/UnstakeForm' import AccountStats from './AccountStats' +import mangoStore from '@store/mangoStore' +import { STAKEABLE_TOKENS } from 'utils/constants' const set = mangoStore.getState().set const Stake = () => { const [activeFormTab, setActiveFormTab] = useState('Add') - const [selectedToken, setSelectedToken] = useState(STAKEABLE_TOKENS[0]) - - useEffect(() => { - const mangoAccounts = mangoStore.getState().mangoAccounts - const selectedMangoAccount = mangoAccounts.find( - (ma) => ma.name === `${ACCOUNT_PREFIX}${selectedToken}`, - ) - console.log('selectedMangoAccount', selectedMangoAccount) - - set((s) => { - s.mangoAccount.current = selectedMangoAccount - }) - }, [selectedToken]) + const selectedToken = mangoStore((s) => s.selectedToken) const onClose = useCallback(() => { console.log('StakeForm onSuccess') }, []) const handleTokenSelect = useCallback((token: string) => { - setSelectedToken(token) + set((state) => { + state.selectedToken = token + }) }, []) return ( diff --git a/pages/index.tsx b/pages/index.tsx index 7eb4cb6..3967468 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,11 +1,13 @@ import Positions from '@components/Positions' import Stake from '@components/Stake' import TransactionHistory from '@components/TransactionHistory' +import mangoStore from '@store/mangoStore' import type { NextPage } from 'next' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' -import { useState } from 'react' +import { useEffect, useState } from 'react' +import { ACCOUNT_PREFIX } from 'utils/transactions' -export const STAKEABLE_TOKENS = ['mSOL', 'JitoSOL', 'stSOL', 'bSOL', 'LDO'] +const set = mangoStore.getState().set export async function getStaticProps({ locale }: { locale: string }) { return { @@ -17,6 +19,19 @@ export async function getStaticProps({ locale }: { locale: string }) { const Index: NextPage = () => { const [activeTab, setActiveTab] = useState('Stake') + const selectedToken = mangoStore((s) => s.selectedToken) + + useEffect(() => { + const mangoAccounts = mangoStore.getState().mangoAccounts + const selectedMangoAccount = mangoAccounts.find( + (ma) => ma.name === `${ACCOUNT_PREFIX}${selectedToken}`, + ) + console.log('selectedMangoAccount', selectedMangoAccount) + + set((s) => { + s.mangoAccount.current = selectedMangoAccount + }) + }, [selectedToken]) return (
diff --git a/store/mangoStore.ts b/store/mangoStore.ts index c92f20e..0e66090 100644 --- a/store/mangoStore.ts +++ b/store/mangoStore.ts @@ -44,6 +44,7 @@ import { OUTPUT_TOKEN_DEFAULT, PAGINATION_PAGE_LENGTH, RPC_PROVIDER_KEY, + STAKEABLE_TOKENS, SWAP_MARGIN_KEY, } from '../utils/constants' import { @@ -140,6 +141,9 @@ export const DEFAULT_TRADE_FORM: TradeForm = { } export type MangoStore = { + // leverage stake + selectedToken: string + //end activityFeed: { feed: Array loading: boolean @@ -307,6 +311,9 @@ const mangoStore = create()( const client = initMangoClient(provider) return { + // leverage stake + selectedToken: STAKEABLE_TOKENS[0], + //end activityFeed: { feed: [], loading: true, diff --git a/utils/constants.ts b/utils/constants.ts index 1d08a2f..d6a34d9 100644 --- a/utils/constants.ts +++ b/utils/constants.ts @@ -1,5 +1,9 @@ import { PublicKey } from '@metaplex-foundation/js' +// lev stake +export const STAKEABLE_TOKENS = ['mSOL', 'JitoSOL', 'stSOL', 'bSOL', 'LDO'] +// end + export const LAST_ACCOUNT_KEY = 'mangoAccount-0.4' export const CLIENT_TX_TIMEOUT = 90000