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 { AccountsContainer } from '../../components/accounts-container'; import { DepositsContainer } from '../../components/deposits-container'; import { FillsContainer } from '../../components/fills-container'; import { PositionsContainer } from '../../components/positions-container'; import { WithdrawalsContainer } from '../../components/withdrawals-container'; import { OrdersContainer } from '../../components/orders-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'; import { AccountsMenu } from '../../components/accounts-menu'; import { DepositsMenu } from '../../components/deposits-menu'; import { WithdrawalsMenu } from '../../components/withdrawals-menu'; import { useGetCurrentRouteId } from '../../lib/hooks/use-get-current-route-id'; const WithdrawalsIndicator = () => { const { ready } = useIncompleteWithdrawals(); if (!ready || ready.length === 0) { return null; } return ( {ready.length} ); }; export const Portfolio = () => { const currentRouteId = useGetCurrentRouteId(); const { getView, setViews } = useSidebar(); const view = getView(currentRouteId); const { updateTitle } = usePageTitleStore((store) => ({ updateTitle: store.updateTitle, })); useEffect(() => { updateTitle(titlefy([t('Portfolio')])); }, [updateTitle]); // Make transfer sidebar open by default useEffect(() => { if (view === undefined) { setViews({ type: ViewType.Transfer }, currentRouteId); } }, [view, setViews, currentRouteId]); const [sizes, handleOnLayoutChange] = usePaneLayout({ id: 'portfolio' }); const wrapperClasses = 'p-0.5 h-full max-h-full flex flex-col'; return (
} > }> } menu={} >
); }; interface PortfolioGridChildProps { children: ReactNode; } const PortfolioGridChild = ({ children }: PortfolioGridChildProps) => { return (
{children}
); };