/
githubmirror
/
ydb-embedded-ui
Обзор
Документация
Войти
/
githubmirror
/
ydb-embedded-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/containers/Storage/TableGroup/useExpandedTableGroups.ts
34 строки
1 KB
Артём Муфазалов
feat(PaginatedStorage): add grouping (#1364)
30 сен 2024, 19:04
Не верифицирован
30 сен 2024, 19:04
93dd920
Код
Авторство
О чём код?
import React from 'react'; import type {TableGroup} from '../../../store/reducers/storage/types'; export function useExpandedGroups(groups?: TableGroup[]) { const [expandedGroups, setExpandedGroups] = React.useState<Record<string, boolean>>({}); React.useEffect(() => { if (groups?.length) { setExpandedGroups((previousExpandedGroups) => { return groups.reduce((result, {name}) => { const previousValue = previousExpandedGroups[name]; // Preserve previously expanded groups on groups list change return { ...result, [name]: previousValue ?? false, }; }, {}); }); } }, [groups]); const setIsGroupExpanded = React.useCallback((name: string, isExpanded: boolean) => { setExpandedGroups((previousExpandedGroups) => { return { ...previousExpandedGroups, [name]: isExpanded, }; }); }, []); return {expandedGroups, setIsGroupExpanded}; }