Buckets:
| import { Component } from "solid-js" | |
| import { Dialog } from "@opencode-ai/ui/dialog" | |
| import { Tabs } from "@opencode-ai/ui/tabs" | |
| import { Icon } from "@opencode-ai/ui/icon" | |
| import { useLanguage } from "@/context/language" | |
| import { usePlatform } from "@/context/platform" | |
| import { SettingsGeneral } from "./settings-general" | |
| import { SettingsKeybinds } from "./settings-keybinds" | |
| import { SettingsProviders } from "./settings-providers" | |
| import { SettingsModels } from "./settings-models" | |
| import { SettingsServers } from "./settings-servers" | |
| export const DialogSettings: Component = () => { | |
| const language = useLanguage() | |
| const platform = usePlatform() | |
| return ( | |
| <Dialog size="x-large" transition> | |
| <Tabs orientation="vertical" variant="settings" defaultValue="general" class="h-full settings-dialog"> | |
| <Tabs.List> | |
| <div class="flex flex-col justify-between h-full w-full gap-4"> | |
| <div class="flex flex-col gap-3 w-full pt-3"> | |
| <div class="flex flex-col gap-3"> | |
| <div class="flex flex-col gap-1.5"> | |
| <Tabs.SectionTitle>{language.t("settings.section.desktop")}</Tabs.SectionTitle> | |
| <div class="flex flex-col gap-1.5 w-full"> | |
| <Tabs.Trigger value="general"> | |
| <Icon name="sliders" /> | |
| {language.t("settings.tab.general")} | |
| </Tabs.Trigger> | |
| <Tabs.Trigger value="shortcuts"> | |
| <Icon name="keyboard" /> | |
| {language.t("settings.tab.shortcuts")} | |
| </Tabs.Trigger> | |
| <Tabs.Trigger value="servers"> | |
| <Icon name="server" /> | |
| {language.t("status.popover.tab.servers")} | |
| </Tabs.Trigger> | |
| </div> | |
| </div> | |
| <div class="flex flex-col gap-1.5"> | |
| <Tabs.SectionTitle>{language.t("settings.section.server")}</Tabs.SectionTitle> | |
| <div class="flex flex-col gap-1.5 w-full"> | |
| <Tabs.Trigger value="providers"> | |
| <Icon name="providers" /> | |
| {language.t("settings.providers.title")} | |
| </Tabs.Trigger> | |
| <Tabs.Trigger value="models"> | |
| <Icon name="models" /> | |
| {language.t("settings.models.title")} | |
| </Tabs.Trigger> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="flex flex-col gap-1 pl-1 py-1 text-12-medium text-text-weak"> | |
| <span>{language.t("app.name.desktop")}</span> | |
| <span class="text-11-regular">v{platform.version}</span> | |
| </div> | |
| </div> | |
| </Tabs.List> | |
| <Tabs.Content value="general" class="no-scrollbar"> | |
| <SettingsGeneral /> | |
| </Tabs.Content> | |
| <Tabs.Content value="shortcuts" class="no-scrollbar"> | |
| <SettingsKeybinds /> | |
| </Tabs.Content> | |
| <Tabs.Content value="servers" class="no-scrollbar"> | |
| <SettingsServers /> | |
| </Tabs.Content> | |
| <Tabs.Content value="providers" class="no-scrollbar"> | |
| <SettingsProviders /> | |
| </Tabs.Content> | |
| <Tabs.Content value="models" class="no-scrollbar"> | |
| <SettingsModels /> | |
| </Tabs.Content> | |
| </Tabs> | |
| </Dialog> | |
| ) | |
| } | |
Xet Storage Details
- Size:
- 3.43 kB
- Xet hash:
- 06a6f7a47d88a35914be51683388ce1d5cbc3bd5768b6d932cff73b3c2c7efda
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.