import { ChangeEvent } from 'react'; import { Divider, Group, Stack } from '@mantine/core'; import { Accordion, Button, ContextModalVars, Switch } from '/@/renderer/components'; import { useLocalStorage } from '@mantine/hooks'; import { openContextModal } from '@mantine/modals'; import isElectron from 'is-electron'; import { RiAddFill, RiServerFill } from 'react-icons/ri'; import { AddServerForm } from '/@/renderer/features/servers/components/add-server-form'; import { ServerListItem } from '/@/renderer/features/servers/components/server-list-item'; import { useServerList } from '/@/renderer/store'; import { titleCase } from '/@/renderer/utils'; const localSettings = isElectron() ? window.electron.localSettings : null; export const ServerList = () => { const serverListQuery = useServerList(); const handleAddServerModal = () => { openContextModal({ innerProps: { modalBody: (vars: ContextModalVars) => ( vars.context.closeModal(vars.id)} /> ), }, modal: 'base', title: 'Add server', }); }; const [ignoreCORS, setIgnoreCORS] = useLocalStorage({ defaultValue: 'false', key: 'ignore_cors', }); const [ignoreSSL, setIgnoreSSL] = useLocalStorage({ defaultValue: 'false', key: 'ignore_ssl', }); const handleUpdateIgnoreCORS = (e: ChangeEvent) => { setIgnoreCORS(String(e.currentTarget.checked)); if (isElectron()) { localSettings?.set('ignore_cors', e.currentTarget.checked); } }; const handleUpdateIgnoreSSL = (e: ChangeEvent) => { setIgnoreSSL(String(e.currentTarget.checked)); if (isElectron()) { localSettings?.set('ignore_ssl', e.currentTarget.checked); } }; return ( <> {Object.keys(serverListQuery)?.map((serverId) => { const server = serverListQuery[serverId]; return ( }> {titleCase(server?.type)} - {server?.name} ); })} ); };