import { openContextModal } from '@mantine/modals'; import isElectron from 'is-electron'; import { useTranslation } from 'react-i18next'; import { isServerLock } from '/@/renderer/features/action-required/utils/window-properties'; import JellyfinLogo from '/@/renderer/features/servers/assets/jellyfin.png'; import NavidromeLogo from '/@/renderer/features/servers/assets/navidrome.png'; import OpenSubsonicLogo from '/@/renderer/features/servers/assets/opensubsonic.png'; import { AddServerForm } from '/@/renderer/features/servers/components/add-server-form'; import { IgnoreCorsSslSwitches } from '/@/renderer/features/servers/components/ignore-cors-ssl-switches'; import { ServerListItem } from '/@/renderer/features/servers/components/server-list-item'; import { useCurrentServer, useServerList } from '/@/renderer/store'; import { Accordion } from '/@/shared/components/accordion/accordion'; import { Button } from '/@/shared/components/button/button'; import { Divider } from '/@/shared/components/divider/divider'; import { Group } from '/@/shared/components/group/group'; import { Icon } from '/@/shared/components/icon/icon'; import { ContextModalVars } from '/@/shared/components/modal/modal'; import { Stack } from '/@/shared/components/stack/stack'; import { Text } from '/@/shared/components/text/text'; import { ServerType } from '/@/shared/types/domain-types'; export const ServerList = () => { const { t } = useTranslation(); const currentServer = useCurrentServer(); const serverListQuery = useServerList(); const serverLock = isServerLock(); const handleAddServerModal = () => { openContextModal({ innerProps: { modalBody: (vars: ContextModalVars) => ( vars.context.closeModal(vars.id)} /> ), }, modal: 'base', title: t('form.addServer.title'), }); }; return ( <> {Object.keys(serverListQuery)?.map((serverId) => { const server = serverListQuery[serverId]; return ( {server?.name} ); })} {!serverLock && ( )} {isElectron() && ( <> )} ); };