import { Component, For, Show, createMemo, createSignal } from "solid-js" import { Dynamic } from "solid-js/web" import type { Instance } from "../types/instance" import InstanceTab from "./instance-tab" import KeyboardHint from "./keyboard-hint" import { Plus, MonitorUp, Bell, BellOff } from "lucide-solid" import { keyboardRegistry } from "../lib/keyboard-registry" import { useI18n } from "../lib/i18n" import { ThemeModeToggle } from "./theme-mode-toggle" import NotificationsSettingsModal from "./notifications-settings-modal" import { isOsNotificationSupportedSync } from "../lib/os-notifications" import { useConfig } from "../stores/preferences" interface InstanceTabsProps { instances: Map activeInstanceId: string | null onSelect: (instanceId: string) => void onClose: (instanceId: string) => void onNew: () => void onOpenRemoteAccess?: () => void } const InstanceTabs: Component = (props) => { const { t } = useI18n() const { preferences } = useConfig() const [notificationsOpen, setNotificationsOpen] = createSignal(false) const notificationsSupported = createMemo(() => isOsNotificationSupportedSync()) const notificationsEnabled = createMemo(() => Boolean(preferences().osNotificationsEnabled)) const notificationIcon = createMemo(() => { if (!notificationsSupported()) return BellOff return notificationsEnabled() ? Bell : BellOff }) const notificationTitle = createMemo(() => { if (!notificationsSupported()) return "Notifications unsupported" return notificationsEnabled() ? "Notifications enabled" : "Notifications disabled" }) return (
{([id, instance]) => ( props.onSelect(id)} onClose={() => props.onClose(id)} /> )}
1}>
setNotificationsOpen(false)} />
) } export default InstanceTabs