/
bearury
/
ui-kit-ce
Обзор
Документация
Войти
/
bearury
/
ui-kit-ce
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
packages/tree/src/contexts/TreeFeatureFlagsContext.tsx
83 строки
2 KB
Урядышев Павел Александрович
chore: устранены предупреждения eslint
25 июл 2025, 14:03
25 июл 2025, 14:03
1bad2f7
Код
Авторство
О чём код?
'use client' import * as React from 'react' export type TreeFeatureFlagsContextProps = { /** * Feature-Flag для отключения фокуса на дерево. * * @inner */ skipFocusOnTreeRef: React.MutableRefObject<boolean> /** * Feature-Flag для отключения раскрытия узла. * * @inner */ skipExpandRef: React.MutableRefObject<boolean> /** * Feature-Flag для отключения рамки фокуса вокруг узла. * * @inner */ skipFocusEffectRef: React.MutableRefObject<boolean> /** * Feature-Flag для отключения выбора узла. * * @inner */ skipSelectRef: React.MutableRefObject<boolean | null> } const TreeFeatureFlagsContext = React.createContext<TreeFeatureFlagsContextProps>( {} as TreeFeatureFlagsContextProps ) /** * Провайдер для изменения Feature-Flag'ов всего дерева. * * @param root0 * @param root0.children * * @returns */ export const TreeFeatureFlagsContextProvider: React.FC = ({ children }) => { const skipFocusOnTreeRef = React.useRef<boolean>(false) const skipExpandRef = React.useRef<boolean>(false) const skipFocusEffectRef = React.useRef<boolean>(false) const skipSelectRef = React.useRef<boolean>(false) const value = React.useMemo( () => ({ skipFocusOnTreeRef, skipExpandRef, skipFocusEffectRef, skipSelectRef, }), [] ) return ( <TreeFeatureFlagsContext.Provider value={value}> {children} </TreeFeatureFlagsContext.Provider> ) } /** * Хук для изменения Feature-Flag'ов всего дерева. * * @returns */ export const useTreeFeatureFlagsContext = (): TreeFeatureFlagsContextProps => { const context = React.useContext(TreeFeatureFlagsContext) if (!context) { throw new Error( 'Hook useTreeFeatureFlagsContext must be used within TreeFeatureFlagsContextProvider!' ) } return context }