()
| 82 | } |
| 83 | |
| 84 | export const SettingsGeneral: Component = () => { |
| 85 | const theme = useTheme() |
| 86 | const language = useLanguage() |
| 87 | const permission = usePermission() |
| 88 | const platform = usePlatform() |
| 89 | const dialog = useDialog() |
| 90 | const params = useParams() |
| 91 | const settings = useSettings() |
| 92 | |
| 93 | const updater = useUpdaterAction() |
| 94 | |
| 95 | const linux = createMemo(() => platform.platform === "desktop" && platform.os === "linux") |
| 96 | const dir = createMemo(() => decode64(params.dir)) |
| 97 | const accepting = createMemo(() => { |
| 98 | const value = dir() |
| 99 | if (!value) return false |
| 100 | if (!params.id) return permission.isAutoAcceptingDirectory(value) |
| 101 | return permission.isAutoAccepting(params.id, value) |
| 102 | }) |
| 103 | |
| 104 | const toggleAccept = (checked: boolean) => { |
| 105 | const value = dir() |
| 106 | if (!value) return |
| 107 | |
| 108 | if (!params.id) { |
| 109 | if (permission.isAutoAcceptingDirectory(value) === checked) return |
| 110 | permission.toggleAutoAcceptDirectory(value) |
| 111 | return |
| 112 | } |
| 113 | |
| 114 | if (checked) { |
| 115 | permission.enableAutoAccept(params.id, value) |
| 116 | return |
| 117 | } |
| 118 | |
| 119 | permission.disableAutoAccept(params.id, value) |
| 120 | } |
| 121 | const desktop = createMemo(() => platform.platform === "desktop") |
| 122 | |
| 123 | const themeOptions = createMemo<ThemeOption[]>(() => theme.ids().map((id) => ({ id, name: theme.name(id) }))) |
| 124 | |
| 125 | const serverSync = useServerSync() |
| 126 | const serverSdk = useServerSDK() |
| 127 | |
| 128 | const [shells] = createResource( |
| 129 | () => |
| 130 | serverSdk() |
| 131 | .client.pty.shells() |
| 132 | .then((res) => res.data ?? []) |
| 133 | .catch(() => [] as ShellOption[]), |
| 134 | { initialValue: [] as ShellOption[] }, |
| 135 | ) |
| 136 | |
| 137 | const [displayBackend, { refetch: refetchDisplayBackend }] = createResource( |
| 138 | () => (linux() && platform.getDisplayBackend ? true : false), |
| 139 | () => Promise.resolve(platform.getDisplayBackend?.() ?? null).catch(() => null as DisplayBackend | null), |
| 140 | { initialValue: null as DisplayBackend | null }, |
| 141 | ) |
nothing calls this directly
no test coverage detected