import * as React from 'react'; import { useRecoilState, useRecoilValue } from 'recoil'; import { Tab } from '../../constants/Tab'; import { SettingsAtom, TabAtom, TabInfoAtom } from '../../state'; import * as l10n from '@vscode/l10n'; import { LocalizationKey } from '../../../localization'; export interface INavigationProps { totalPages: number; } export interface INavigationItemProps { tabId: string; isCrntTab: boolean; onClick: () => void; } const NavigationItem: React.FunctionComponent = ({ tabId, isCrntTab, onClick, children }: React.PropsWithChildren) => { return ( ) }; export const Navigation: React.FunctionComponent = ({ }: React.PropsWithChildren) => { const [crntTab, setCrntTab] = useRecoilState(TabAtom); const tabInfo = useRecoilValue(TabInfoAtom); const settings = useRecoilValue(SettingsAtom); const tabs = React.useMemo(() => { const crntTabs = [ { name: l10n.t(LocalizationKey.dashboardHeaderNavigationAllArticles), id: Tab.All } ]; if (settings?.draftField?.type === 'boolean' && tabInfo && Object.keys(tabInfo).length > 1) { crntTabs.push({ name: l10n.t(LocalizationKey.dashboardHeaderNavigationPublished), id: Tab.Published }); if (tabInfo.scheduled) { crntTabs.push({ name: l10n.t(LocalizationKey.dashboardHeaderNavigationScheduled), id: Tab.Scheduled }); } crntTabs.push({ name: l10n.t(LocalizationKey.dashboardHeaderNavigationDraft), id: Tab.Draft }); } return crntTabs; }, [settings?.draftField?.type, tabInfo]); return ( ); };