|
|
@@ -8,7 +8,9 @@ import { TextField } from "@opencode-ai/ui/text-field"
|
|
|
import { Tooltip } from "@opencode-ai/ui/tooltip"
|
|
|
import { useTheme, type ColorScheme } from "@opencode-ai/ui/theme/context"
|
|
|
import { showToast } from "@opencode-ai/ui/toast"
|
|
|
+import { useParams } from "@solidjs/router"
|
|
|
import { useLanguage } from "@/context/language"
|
|
|
+import { usePermission } from "@/context/permission"
|
|
|
import { usePlatform } from "@/context/platform"
|
|
|
import {
|
|
|
monoDefault,
|
|
|
@@ -19,6 +21,7 @@ import {
|
|
|
sansInput,
|
|
|
useSettings,
|
|
|
} from "@/context/settings"
|
|
|
+import { decode64 } from "@/utils/base64"
|
|
|
import { playSoundById, SOUND_OPTIONS } from "@/utils/sound"
|
|
|
import { Link } from "./link"
|
|
|
import { SettingsList } from "./settings-list"
|
|
|
@@ -64,7 +67,9 @@ const playDemoSound = (id: string | undefined) => {
|
|
|
export const SettingsGeneral: Component = () => {
|
|
|
const theme = useTheme()
|
|
|
const language = useLanguage()
|
|
|
+ const permission = usePermission()
|
|
|
const platform = usePlatform()
|
|
|
+ const params = useParams()
|
|
|
const settings = useSettings()
|
|
|
|
|
|
onMount(() => {
|
|
|
@@ -76,6 +81,31 @@ export const SettingsGeneral: Component = () => {
|
|
|
})
|
|
|
|
|
|
const linux = createMemo(() => platform.platform === "desktop" && platform.os === "linux")
|
|
|
+ const dir = createMemo(() => decode64(params.dir))
|
|
|
+ const accepting = createMemo(() => {
|
|
|
+ const value = dir()
|
|
|
+ if (!value) return false
|
|
|
+ if (!params.id) return permission.isAutoAcceptingDirectory(value)
|
|
|
+ return permission.isAutoAccepting(params.id, value)
|
|
|
+ })
|
|
|
+
|
|
|
+ const toggleAccept = (checked: boolean) => {
|
|
|
+ const value = dir()
|
|
|
+ if (!value) return
|
|
|
+
|
|
|
+ if (!params.id) {
|
|
|
+ if (permission.isAutoAcceptingDirectory(value) === checked) return
|
|
|
+ permission.toggleAutoAcceptDirectory(value)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (checked) {
|
|
|
+ permission.enableAutoAccept(params.id, value)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ permission.disableAutoAccept(params.id, value)
|
|
|
+ }
|
|
|
|
|
|
const check = () => {
|
|
|
if (!platform.checkUpdate) return
|
|
|
@@ -201,6 +231,15 @@ export const SettingsGeneral: Component = () => {
|
|
|
/>
|
|
|
</SettingsRow>
|
|
|
|
|
|
+ <SettingsRow
|
|
|
+ title={language.t("command.permissions.autoaccept.enable")}
|
|
|
+ description={language.t("toast.permissions.autoaccept.on.description")}
|
|
|
+ >
|
|
|
+ <div data-action="settings-auto-accept-permissions">
|
|
|
+ <Switch checked={accepting()} disabled={!dir()} onChange={toggleAccept} />
|
|
|
+ </div>
|
|
|
+ </SettingsRow>
|
|
|
+
|
|
|
<SettingsRow
|
|
|
title={language.t("settings.general.row.reasoningSummaries.title")}
|
|
|
description={language.t("settings.general.row.reasoningSummaries.description")}
|