import { useActiveWorkspace } from '../hooks/useActiveWorkspace'; import { useAppInfo } from '../hooks/useAppInfo'; import { useCheckForUpdates } from '../hooks/useCheckForUpdates'; import { useSettings } from '../hooks/useSettings'; import { useUpdateSettings } from '../hooks/useUpdateSettings'; import { useUpdateWorkspace } from '../hooks/useUpdateWorkspace'; import { trackEvent } from '../lib/analytics'; import { Checkbox } from './core/Checkbox'; import { Heading } from './core/Heading'; import { IconButton } from './core/IconButton'; import { Input } from './core/Input'; import { KeyValueRow, KeyValueRows } from './core/KeyValueRow'; import { Select } from './core/Select'; import { Separator } from './core/Separator'; import { VStack } from './core/Stacks'; export const SettingsDialog = () => { const workspace = useActiveWorkspace(); const updateWorkspace = useUpdateWorkspace(workspace?.id ?? null); const settings = useSettings(); const updateSettings = useUpdateSettings(); const appInfo = useAppInfo(); const checkForUpdates = useCheckForUpdates(); if (settings == null || workspace == null) { return null; } return ( { trackEvent('setting', 'update', { update_channel: updateChannel }); await updateSettings.mutateAsync({ ...settings, updateChannel }); }} options={[ { label: 'Release', value: 'stable', }, { label: 'Early Bird (Beta)', value: 'beta', }, ]} /> checkForUpdates.mutateAsync()} /> Workspace{' '}
{workspace.name}
parseInt(value) >= 0} onChange={(v) => updateWorkspace.mutateAsync({ settingRequestTimeout: parseInt(v) || 0 })} /> { trackEvent('workspace', 'update', { validate_certificates: JSON.stringify(settingValidateCertificates), }); await updateWorkspace.mutateAsync({ settingValidateCertificates }); }} /> { trackEvent('workspace', 'update', { follow_redirects: JSON.stringify(settingFollowRedirects), }); await updateWorkspace.mutateAsync({ settingFollowRedirects }); }} /> App Info
); };