use mango store for tabs

This commit is contained in:
tjs 2023-11-10 12:58:04 -05:00
parent 1df2e35169
commit 6f9c0bb357
4 changed files with 19 additions and 9 deletions

View File

@ -3,17 +3,23 @@ import NavTabs from './NavTabs'
import Positions from './Positions'
import Stake from './Stake'
import TransactionHistory from './TransactionHistory'
import mangoStore from '@store/mangoStore'
import { useEffect, useState } from 'react'
import mangoStore, { ActiveTab } from '@store/mangoStore'
import { useCallback, useEffect } from 'react'
import { BOOST_ACCOUNT_PREFIX } from 'utils/constants'
const set = mangoStore.getState().set
const HomePage = () => {
const [activeTab, setActiveTab] = useState('Boost!')
const activeTab = mangoStore((s) => s.activeTab)
const selectedToken = mangoStore((s) => s.selectedToken)
const { positions } = usePositions()
const setActiveTab = useCallback((tab: ActiveTab) => {
return set((s) => {
s.activeTab = tab
})
}, [])
useEffect(() => {
const mangoAccounts = mangoStore.getState().mangoAccounts
const selectedMangoAccount = mangoAccounts.find(
@ -56,7 +62,7 @@ const TabContent = ({
setActiveTab,
}: {
activeTab: string
setActiveTab: (tab: string) => void
setActiveTab: (tab: ActiveTab) => void
}) => {
switch (activeTab) {
case 'Boost!':

View File

@ -30,9 +30,9 @@ const NavTabs = <T extends Values>({
<div
className={`ml-2 rounded ${
value === activeValue ? 'bg-th-bkg-1' : 'bg-th-bkg-3'
} px-1.5 py-0.5 text-sm text-th-fgd-2`}
} px-1.5 py-0.5 `}
>
{count}
<span className="text-sm text-th-fgd-2">{count}</span>
</div>
) : null}
</button>

View File

@ -4,7 +4,7 @@ import { BORROW_TOKEN, SHOW_INACTIVE_POSITIONS_KEY } from 'utils/constants'
import TokenLogo from './shared/TokenLogo'
import Button from './shared/Button'
import { formatTokenSymbol } from 'utils/tokens'
import mangoStore from '@store/mangoStore'
import mangoStore, { ActiveTab } from '@store/mangoStore'
import Switch from './forms/Switch'
import useLocalStorageState from 'hooks/useLocalStorageState'
import FormatNumericValue from './shared/FormatNumericValue'
@ -40,7 +40,7 @@ const getLiquidationRatio = (
const Positions = ({
setActiveTab,
}: {
setActiveTab: (tab: string) => void
setActiveTab: (tab: ActiveTab) => void
}) => {
const [showInactivePositions, setShowInactivePositions] =
useLocalStorageState(SHOW_INACTIVE_POSITIONS_KEY, true)
@ -92,7 +92,7 @@ const PositionItem = ({
borrowBank,
}: {
position: Position
setActiveTab: (v: string) => void
setActiveTab: (v: ActiveTab) => void
borrowBank: Bank | undefined
}) => {
const { group } = useMangoGroup()

View File

@ -136,8 +136,11 @@ export const DEFAULT_TRADE_FORM: TradeForm = {
reduceOnly: false,
}
export type ActiveTab = 'Boost!' | 'Positions' | 'Activity'
export type MangoStore = {
// leverage stake
activeTab: ActiveTab
selectedToken: string
estimatedMaxAPY: {
current: number
@ -301,6 +304,7 @@ const mangoStore = create<MangoStore>()(
return {
// leverage stake
activeTab: 'Boost!',
selectedToken: STAKEABLE_TOKENS[0],
estimatedMaxAPY: {
current: 0,