aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/organisms/forms/ackee-toggle
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-10-26 19:07:31 +0200
committerArmand Philippot <git@armandphilippot.com>2023-11-11 18:15:27 +0100
commit795b92cc1a168c48c7710ca6e0e1ef5974013d95 (patch)
tree8f57204b0ffe7c8acb3203a24292f375377b6369 /src/components/organisms/forms/ackee-toggle
parent9aeb82269d7c74c4566b7ca254782a4dfbd69a6e (diff)
refactor(hooks): rewrite useLocalStorage hook
* return a tuple instead of an object * add a validator function as parameter (if the stored value is manually changed, it is not safe to cast its type) * add tests
Diffstat (limited to 'src/components/organisms/forms/ackee-toggle')
-rw-r--r--src/components/organisms/forms/ackee-toggle/ackee-toggle.tsx8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/components/organisms/forms/ackee-toggle/ackee-toggle.tsx b/src/components/organisms/forms/ackee-toggle/ackee-toggle.tsx
index 8ada948..a9c172b 100644
--- a/src/components/organisms/forms/ackee-toggle/ackee-toggle.tsx
+++ b/src/components/organisms/forms/ackee-toggle/ackee-toggle.tsx
@@ -15,6 +15,9 @@ import {
type TooltipProps,
} from '../../../molecules';
+const validator = (value: unknown): value is AckeeOptions =>
+ value === 'full' || value === 'partial';
+
export type AckeeToggleProps = Omit<
SwitchProps,
'isInline' | 'items' | 'name' | 'onSwitch' | 'value'
@@ -46,9 +49,10 @@ export const AckeeToggle: FC<AckeeToggleProps> = ({
...props
}) => {
const intl = useIntl();
- const { value, setValue } = useLocalStorage<AckeeOptions>(
+ const [value, setValue] = useLocalStorage(
storageKey,
- defaultValue
+ defaultValue,
+ validator
);
const [isTooltipOpened, setIsTooltipOpened] = useState(false);