import { Component, For, Show, createMemo } 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, Settings } from "lucide-solid" import { keyboardRegistry } from "../lib/keyboard-registry" import { useI18n } from "../lib/i18n" import { isOsNotificationSupportedSync } from "../lib/os-notifications" import { useConfig } from "../stores/preferences" import { openSettings } from "../stores/settings-screen" interface InstanceTabsProps { instances: Map activeInstanceId: string | null onSelect: (instanceId: string) => void onClose: (instanceId: string) => void onNew: () => void } const InstanceTabs: Component = (props) => { const { t } = useI18n() const { preferences } = useConfig() 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 t("settings.notifications.status.unsupported") return notificationsEnabled() ? t("settings.notifications.status.enabled") : t("settings.notifications.status.disabled") }) return (
{([id, instance]) => ( props.onSelect(id)} onClose={() => props.onClose(id)} /> )}
1}>
) } export default InstanceTabs