lev-stake-sol/pages/index.tsx

101 lines
2.8 KiB
TypeScript
Raw Normal View History

import Positions from '@components/Positions'
import Stake from '@components/Stake'
import TransactionHistory from '@components/TransactionHistory'
2023-09-14 19:31:59 -07:00
import mangoStore from '@store/mangoStore'
2023-09-12 17:37:41 -07:00
import type { NextPage } from 'next'
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
2023-09-14 19:31:59 -07:00
import { useEffect, useState } from 'react'
import { BOOST_ACCOUNT_PREFIX } from 'utils/constants'
2023-09-12 17:37:41 -07:00
2023-09-14 19:31:59 -07:00
const set = mangoStore.getState().set
2023-09-14 06:18:39 -07:00
2023-09-12 17:37:41 -07:00
export async function getStaticProps({ locale }: { locale: string }) {
return {
props: {
...(await serverSideTranslations(locale, ['common'])),
},
}
}
const Index: NextPage = () => {
const [activeTab, setActiveTab] = useState('Stake')
2023-09-14 19:31:59 -07:00
const selectedToken = mangoStore((s) => s.selectedToken)
useEffect(() => {
const mangoAccounts = mangoStore.getState().mangoAccounts
const selectedMangoAccount = mangoAccounts.find(
2023-09-20 14:50:35 -07:00
(ma) =>
ma.name.toLowerCase() ===
`${(BOOST_ACCOUNT_PREFIX + selectedToken).toLowerCase()}`,
)
console.log(
'selectedMangoAccount',
(BOOST_ACCOUNT_PREFIX + selectedToken).toLowerCase(),
selectedMangoAccount,
2023-09-14 19:31:59 -07:00
)
set((s) => {
s.mangoAccount.current = selectedMangoAccount
})
}, [selectedToken])
2023-09-12 17:37:41 -07:00
return (
2023-09-14 22:57:39 -07:00
<div className="mx-auto max-w-6xl px-6 pb-12 md:pb-20 lg:px-12">
<div className="mb-6 grid grid-cols-3 rounded-xl border border-th-fgd-1">
<button
className={`col-span-1 mx-auto w-full rounded-l-xl border-r border-th-fgd-1 py-4 font-bold ${
activeTab === 'Stake'
? 'bg-th-bkg-2 text-th-fgd-1'
: 'text-th-fgd-3'
}`}
onClick={() => setActiveTab('Stake')}
>
Stake
</button>
<button
className={`col-span-1 mx-auto w-full border-r border-th-fgd-1 py-4 font-bold ${
activeTab === 'Positions'
? 'bg-th-bkg-2 text-th-fgd-1'
: 'text-th-fgd-3'
}`}
onClick={() => setActiveTab('Positions')}
2023-09-12 17:37:41 -07:00
>
2023-09-14 21:24:29 -07:00
Positions
</button>
<button
className={`col-span-1 mx-auto w-full rounded-r-xl py-4 font-bold ${
activeTab === 'History'
? 'bg-th-bkg-2 text-th-fgd-1'
: 'text-th-fgd-3'
}`}
onClick={() => setActiveTab('History')}
2023-09-12 17:37:41 -07:00
>
2023-09-18 20:19:55 -07:00
History
</button>
2023-09-12 17:37:41 -07:00
</div>
2023-09-14 21:24:29 -07:00
<TabContent activeTab={activeTab} setActiveTab={setActiveTab} />
2023-09-12 17:37:41 -07:00
</div>
)
}
export default Index
2023-09-14 21:24:29 -07:00
const TabContent = ({
activeTab,
setActiveTab,
}: {
activeTab: string
setActiveTab: (tab: string) => void
}) => {
switch (activeTab) {
case 'Stake':
return <Stake />
case 'Positions':
2023-09-14 21:24:29 -07:00
return <Positions setActiveTab={setActiveTab} />
case 'History':
return <TransactionHistory />
default:
return <Stake />
}
}