/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/modules/ListView/hooks/useTableView.ts
39 строк
1 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
import { useCallback, useEffect, useRef, useState } from "react"; import { View } from "models"; import { useGetViewsQuery } from "services"; export const useTableView = (listId?: number) => { const { data: views } = useGetViewsQuery(Number(listId), { skip: !listId, }); const [currentView, setCurrentView] = useState<View | undefined>(undefined); const prevListIdRef = useRef<number | undefined>(listId); useEffect(() => { // Сбрасываем currentView при изменении listId if (prevListIdRef.current !== listId) { // eslint-disable-next-line react-hooks/set-state-in-effect setCurrentView(undefined); prevListIdRef.current = listId; } }, [listId]); useEffect(() => { if (views) { // eslint-disable-next-line react-hooks/set-state-in-effect setCurrentView(views[0]); } }, [views]); const handleSetCurrentView = useCallback((view: View) => { setCurrentView(view); }, []); return { currentView, setCurrentView: handleSetCurrentView, views, }; };