import { useCallback, Dispatch } from 'react'; import { openModal } from '@mantine/modals'; import { Command, CommandPalettePages } from '/@/renderer/features/search/components/command'; import { ServerList } from '/@/renderer/features/servers'; import { useAuthStoreActions, useServerList } from '/@/renderer/store'; import { ServerListItem } from '/@/renderer/api/types'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router'; import { AppRoute } from '/@/renderer/router/routes'; interface ServerCommandsProps { handleClose: () => void; setPages: (pages: CommandPalettePages[]) => void; setQuery: Dispatch; } export const ServerCommands = ({ setQuery, setPages, handleClose }: ServerCommandsProps) => { const { t } = useTranslation(); const serverList = useServerList(); const navigate = useNavigate(); const { setCurrentServer } = useAuthStoreActions(); const handleManageServersModal = useCallback(() => { openModal({ children: , title: t('page.appMenu.manageServers', { postProcess: 'sentenceCase' }), }); handleClose(); setQuery(''); setPages([CommandPalettePages.HOME]); }, [handleClose, setPages, setQuery, t]); const handleSelectServer = useCallback( (server: ServerListItem) => { navigate(AppRoute.HOME); setCurrentServer(server); handleClose(); setQuery(''); setPages([CommandPalettePages.HOME]); }, [handleClose, navigate, setCurrentServer, setPages, setQuery], ); return ( <> {Object.keys(serverList).map((key) => ( handleSelectServer(serverList[key])} >{`${serverList[key].name}...`} ))} {t('page.appMenu.manageServers', { postProcess: 'sentenceCase' })}... ); };