diff options
| author | Oliver <oliver@mohlin.dev> | 2025-11-10 10:24:48 +0100 |
|---|---|---|
| committer | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-11-27 15:54:57 +0100 |
| commit | 0e6c9b31d5fb60395ad0df8f7e57cfb7c63a6a41 (patch) | |
| tree | 33cec62481e5597c08ee2f73d77db8d2d37ba5ca | |
| parent | 786ef7b2c4a0e66e8504478f3cd943a6bd626f46 (diff) | |
| download | mullvadvpn-0e6c9b31d5fb60395ad0df8f7e57cfb7c63a6a41.tar.xz mullvadvpn-0e6c9b31d5fb60395ad0df8f7e57cfb7c63a6a41.zip | |
Extract start minimzed switch component
2 files changed, 48 insertions, 18 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/user-interface-settings/components/start-minimized-setting/StartMinimizedSetting.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/user-interface-settings/components/start-minimized-setting/StartMinimizedSetting.tsx index 19418f9ff0..429b8fe055 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/views/user-interface-settings/components/start-minimized-setting/StartMinimizedSetting.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/user-interface-settings/components/start-minimized-setting/StartMinimizedSetting.tsx @@ -1,24 +1,30 @@ import { messages } from '../../../../../../shared/gettext'; -import { useAppContext } from '../../../../../context'; -import { useSelector } from '../../../../../redux/store'; -import { SettingsToggleListItem } from '../../../../settings-toggle-list-item'; +import { SettingsListItem } from '../../../../settings-list-item'; +import { StartMinimizedSwitch } from './StartMinimizedSwitch'; export function StartMinimizedSetting() { - const startMinimized = useSelector((state) => state.settings.guiSettings.startMinimized); - const { setStartMinimized } = useAppContext(); - return ( - <SettingsToggleListItem - checked={startMinimized} - onCheckedChange={setStartMinimized} - description={messages.pgettext( - 'user-interface-settings-view', - 'Show only the tray icon when the app starts.', - )}> - <SettingsToggleListItem.Label> - {messages.pgettext('user-interface-settings-view', 'Start minimized')} - </SettingsToggleListItem.Label> - <SettingsToggleListItem.Switch /> - </SettingsToggleListItem> + <SettingsListItem> + <SettingsListItem.Item> + <SettingsListItem.Content> + <StartMinimizedSwitch> + <StartMinimizedSwitch.Label variant="titleMedium"> + {messages.pgettext('user-interface-settings-view', 'Start minimized')} + </StartMinimizedSwitch.Label> + <StartMinimizedSwitch.Trigger> + <StartMinimizedSwitch.Thumb /> + </StartMinimizedSwitch.Trigger> + </StartMinimizedSwitch> + </SettingsListItem.Content> + </SettingsListItem.Item> + <SettingsListItem.Footer> + <SettingsListItem.Text> + {messages.pgettext( + 'user-interface-settings-view', + 'Show only the tray icon when the app starts.', + )} + </SettingsListItem.Text> + </SettingsListItem.Footer> + </SettingsListItem> ); } diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/user-interface-settings/components/start-minimized-setting/StartMinimizedSwitch.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/user-interface-settings/components/start-minimized-setting/StartMinimizedSwitch.tsx new file mode 100644 index 0000000000..7b08d81781 --- /dev/null +++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/user-interface-settings/components/start-minimized-setting/StartMinimizedSwitch.tsx @@ -0,0 +1,24 @@ +import { useAppContext } from '../../../../../context'; +import { useStartMinimized } from '../../../../../features/client/hooks'; +import { Switch, SwitchProps } from '../../../../../lib/components/switch'; + +export type StartMinimizedSwitchProps = SwitchProps; + +function StartMinimizedSwitch({ children, ...props }: StartMinimizedSwitchProps) { + const startMinimized = useStartMinimized(); + const { setStartMinimized } = useAppContext(); + + return ( + <Switch checked={startMinimized} onCheckedChange={setStartMinimized} {...props}> + {children} + </Switch> + ); +} + +const StartMinimizedSwitchNamespace = Object.assign(StartMinimizedSwitch, { + Label: Switch.Label, + Thumb: Switch.Thumb, + Trigger: Switch.Trigger, +}); + +export { StartMinimizedSwitchNamespace as StartMinimizedSwitch }; |
