import { Fragment } from 'react' import { useContext } from 'use-context-selector' import { useTranslation } from 'react-i18next' import { Menu, Transition } from '@headlessui/react' import s from './index.module.css' import cn from '@/utils/classnames' import { switchWorkspace } from '@/service/common' import { useWorkspacesContext } from '@/context/workspace-context' import { ChevronRight } from '@/app/components/base/icons/src/vender/line/arrows' import { Check } from '@/app/components/base/icons/src/vender/line/general' import { ToastContext } from '@/app/components/base/toast' const itemClassName = ` flex items-center px-3 py-2 h-10 cursor-pointer ` const itemIconClassName = ` shrink-0 mr-2 flex items-center justify-center w-6 h-6 bg-[#EFF4FF] rounded-md text-xs font-medium text-primary-600 ` const itemNameClassName = ` grow mr-2 text-sm text-gray-700 text-left ` const itemCheckClassName = ` shrink-0 w-4 h-4 text-primary-600 ` const WorkplaceSelector = () => { const { t } = useTranslation() const { notify } = useContext(ToastContext) const { workspaces } = useWorkspacesContext() const currentWorkspace = workspaces.find(v => v.current) const handleSwitchWorkspace = async (tenant_id: string) => { try { if (currentWorkspace?.id === tenant_id) return await switchWorkspace({ url: '/workspaces/switch', body: { tenant_id } }) notify({ type: 'success', message: t('common.actionMsg.modifiedSuccessfully') }) location.assign(`${location.origin}`) } catch (e) { notify({ type: 'error', message: t('common.provider.saveFailed') }) } } return ( { ({ open }) => ( <>
{currentWorkspace?.name[0].toLocaleUpperCase()}
{currentWorkspace?.name}
{ workspaces.map(workspace => (
handleSwitchWorkspace(workspace.id)}>
{workspace.name[0].toLocaleUpperCase()}
{workspace.name}
{workspace.current && }
)) }
) }
) } export default WorkplaceSelector