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/types'; 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 serverList = useServerList(); const navigate = useNavigate(); const { setCurrentServer } = useAuthStoreActions(); const handleManageServersModal = useCallback(() => { openModal({ children: , title: 'Manage Servers', }); handleClose(); setQuery(''); setPages([CommandPalettePages.HOME]); }, [handleClose, setPages, setQuery]); 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])} >{`Switch to ${serverList[key].name}...`} ))} Manage servers... ); };