import { useEffect } from 'react'; import type { ReactNode } from 'react'; import { LayoutPriority } from 'allotment'; import { titlefy } from '@vegaprotocol/utils'; import { t } from '@vegaprotocol/i18n'; import { useIncompleteWithdrawals } from '@vegaprotocol/withdraws'; import { Tab, LocalStoragePersistTabs as Tabs } from '@vegaprotocol/ui-toolkit'; import { usePageTitleStore } from '../../stores'; import { useMarketClickHandler } from '../../lib/hooks/use-market-click-handler'; import { AccountsContainer } from '../../components/accounts-container'; import { DepositsContainer } from './deposits-container'; import { FillsContainer } from '../../components/fills-container'; import { PositionsContainer } from '../../components/positions-container'; import { WithdrawalsContainer } from './withdrawals-container'; import { OrdersContainer } from '../../components/orders-container'; import { VegaWalletContainer } from '../../components/vega-wallet-container'; import { LedgerContainer } from '../../components/ledger-container'; import { AccountHistoryContainer } from './account-history-container'; import { ResizableGrid, ResizableGridPanel, usePaneLayout, } from '../../components/resizable-grid'; import { ViewType, useSidebar } from '../../components/sidebar'; const WithdrawalsIndicator = () => { const { ready } = useIncompleteWithdrawals(); if (!ready || ready.length === 0) { return null; } return ( {ready.length} ); }; export const Portfolio = () => { const { init, view, setView } = useSidebar(); const { updateTitle } = usePageTitleStore((store) => ({ updateTitle: store.updateTitle, })); useEffect(() => { updateTitle(titlefy([t('Portfolio')])); }, [updateTitle]); // Make transfer sidebar open by default useEffect(() => { if (init && view === null) { setView({ type: ViewType.Transfer }); } }, [init, view, setView]); const onMarketClick = useMarketClickHandler(true); const [sizes, handleOnLayoutChange] = usePaneLayout({ id: 'portfolio' }); const wrapperClasses = 'p-0.5 h-full max-h-full flex flex-col'; return (