feat(ui): abstract out and share logic between comparisons

This commit is contained in:
psychedelicious
2024-06-02 10:02:33 +10:00
parent 34d68a3663
commit 449bc4dbe5
13 changed files with 260 additions and 242 deletions

View File

@ -0,0 +1,21 @@
import { useCallback, useMemo, useState } from 'react';
export const useBoolean = (initialValue: boolean) => {
const [isTrue, set] = useState(initialValue);
const setTrue = useCallback(() => set(true), []);
const setFalse = useCallback(() => set(false), []);
const toggle = useCallback(() => set((v) => !v), []);
const api = useMemo(
() => ({
isTrue,
set,
setTrue,
setFalse,
toggle,
}),
[isTrue, set, setTrue, setFalse, toggle]
);
return api;
};