From 76aca8ae7c597977399c4f1f810e3064a17ec432 Mon Sep 17 00:00:00 2001 From: maxichrome Date: Tue, 10 May 2022 11:39:29 -0500 Subject: [PATCH 1/2] extract experimental toggle change logic --- .../src/components/primitive/Toggle.tsx | 42 ++++++++----------- .../screens/settings/ExperimentalSettings.tsx | 10 ++++- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/packages/interface/src/components/primitive/Toggle.tsx b/packages/interface/src/components/primitive/Toggle.tsx index 4e79edff3..40c701eac 100644 --- a/packages/interface/src/components/primitive/Toggle.tsx +++ b/packages/interface/src/components/primitive/Toggle.tsx @@ -1,43 +1,37 @@ -import React, { useState } from 'react'; +import React from 'react'; import { Switch } from '@headlessui/react'; import clsx from 'clsx'; -import { useStore } from '../device/Stores'; -export const Toggle = ( - props: { initialState: boolean; size: 'sm' | 'md'; type: string } = { - initialState: false, - size: 'sm', - type: '' - } -) => { - const [enabled, setEnabled] = useState(props.initialState || false); - if (enabled && props.type == 'experimental') { - useStore.setState({ experimental: true }); - } else { - useStore.setState({ experimental: false }); - } +export interface ToggleProps { + value: boolean; + onChange: (value: boolean) => void; + size?: 'sm' | 'md'; +} + +export const Toggle: React.FC = (props) => { + const { value: isEnabled = false, onChange = (val) => null, size = 'sm' } = props; return ( diff --git a/packages/interface/src/screens/settings/ExperimentalSettings.tsx b/packages/interface/src/screens/settings/ExperimentalSettings.tsx index e3e352947..ecd6537b9 100644 --- a/packages/interface/src/screens/settings/ExperimentalSettings.tsx +++ b/packages/interface/src/screens/settings/ExperimentalSettings.tsx @@ -22,7 +22,15 @@ export default function ExperimentalSettings() { description="Shows data about Spacedrive such as Jobs, Job History and Client State." >
- + { + useStore.setState({ + experimental: newValue + }); + }} + />
From 8308eb5e3c519590d6a55ffad26eab16d74701fa Mon Sep 17 00:00:00 2001 From: maxichrome Date: Tue, 10 May 2022 15:53:41 -0500 Subject: [PATCH 2/2] fix "Encrypt on cloud" toggle --- packages/interface/src/screens/settings/LibrarySettings.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/interface/src/screens/settings/LibrarySettings.tsx b/packages/interface/src/screens/settings/LibrarySettings.tsx index 4eaad1592..ea8bbcca9 100644 --- a/packages/interface/src/screens/settings/LibrarySettings.tsx +++ b/packages/interface/src/screens/settings/LibrarySettings.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { Button } from '@sd/ui'; import { InputContainer } from '../../components/primitive/InputContainer'; import { Toggle } from '../../components/primitive'; @@ -7,6 +6,7 @@ type LibrarySecurity = 'public' | 'password' | 'vault'; export default function LibrarySettings() { // const locations = useBridgeQuery("SysGetLocation") + const [encryptOnCloud, setEncryptOnCloud] = React.useState(false); return (
@@ -23,7 +23,7 @@ export default function LibrarySettings() { description="Enable if library contains sensitive data and should not be synced to the cloud without full encryption." >
- +