/
vshmidt
/
label-studio
Обзор
Документация
Войти
/
vshmidt
/
label-studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
web/libs/editor/src/hooks/useToggle.ts
17 строк
542 B
Raul Martin
refactor: echo 27: Introducing biome (#5759)
29 апр 2024, 11:39
Не верифицирован
29 апр 2024, 11:39
2660ec9
Код
Авторство
О чём код?
import { useMemo, useState } from "react"; type ToggleHookReturn = [boolean, () => any, () => any, () => any]; /** * Handle boolean states conveniently * @param {boolean=false} defaultValue */ export const useToggle = (defaultValue = false): ToggleHookReturn => { const [value, setValue] = useState(defaultValue); const [setTrue, setFalse, toggleValue] = useMemo( () => [setValue.bind(null, true), setValue.bind(null, false), () => setValue((value) => !value)], [], ); return [value, setTrue, setFalse, toggleValue]; };