import { revealItemInDir } from '@tauri-apps/plugin-opener'; import { patchModel, settingsAtom } from '@yaakapp-internal/models'; import { useAtomValue } from 'jotai'; import { activeWorkspaceAtom } from '../../hooks/useActiveWorkspace'; import { useCheckForUpdates } from '../../hooks/useCheckForUpdates'; import { appInfo } from '../../lib/appInfo'; import { revealInFinderText } from '../../lib/reveal'; import { CargoFeature } from '../CargoFeature'; import { Checkbox } from '../core/Checkbox'; import { Heading } from '../core/Heading'; import { IconButton } from '../core/IconButton'; import { KeyValueRow, KeyValueRows } from '../core/KeyValueRow'; import { PlainInput } from '../core/PlainInput'; import { Select } from '../core/Select'; import { Separator } from '../core/Separator'; import { VStack } from '../core/Stacks'; export function SettingsGeneral() { const workspace = useAtomValue(activeWorkspaceAtom); const settings = useAtomValue(settingsAtom); const checkForUpdates = useCheckForUpdates(); if (settings == null || workspace == null) { return null; } return (
General

Configure general settings for update behavior and more.

patchModel(settings, { autoupdate: v === 'auto' })} options={[ { label: 'Automatic', value: 'auto' }, { label: 'Manual', value: 'manual' }, ]} /> patchModel(settings, { autoDownloadUpdates })} /> patchModel(settings, { checkNotifications })} /> patchModel(settings, { checkNotifications })} /> Workspace{' '}
{workspace.name}
Number.parseInt(value, 10) >= 0} onChange={(v) => patchModel(workspace, { settingRequestTimeout: Number.parseInt(v, 10) || 0 }) } type="number" /> patchModel(workspace, { settingValidateCertificates }) } /> patchModel(workspace, { settingFollowRedirects, }) } /> App Info {appInfo.version} revealItemInDir(appInfo.appDataDir)} /> } > {appInfo.appDataDir} revealItemInDir(appInfo.appLogDir)} /> } > {appInfo.appLogDir} ); }