import { messageHandler } from '@estruyf/vscode/dist/client'; import { Menu } from '@headlessui/react'; import { SwitchHorizontalIcon } from '@heroicons/react/outline'; import * as React from 'react'; import { useRecoilValue } from 'recoil'; import { DashboardMessage } from '../../DashboardMessage'; import { SettingsSelector } from '../../state'; import { MenuButton, MenuItem, MenuItems } from '../Menu'; import * as l10n from '@vscode/l10n'; import { LocalizationKey } from '../../../localization'; export interface IProjectSwitcherProps { } export const ProjectSwitcher: React.FunctionComponent = (props: React.PropsWithChildren) => { const [crntProject, setCrntProject] = React.useState(undefined); const settings = useRecoilValue(SettingsSelector); const project = settings?.project; const projects = settings?.projects || []; const setProject = (value: string) => { setCrntProject(value); messageHandler.send(DashboardMessage.switchProject, value) } React.useEffect(() => { setCrntProject(project?.name); }, [project]); if (projects.length <= 1 || !crntProject) { return null; } return (
{l10n.t(LocalizationKey.dashboardHeaderProjectSwitcherLabel)}
)} title={crntProject} /> {projects.map((p) => ( setProject(p.name)} /> ))} ); };