feat: reset Recoil state on logout (#1675)

Closes #1452
This commit is contained in:
Thaïs
2023-09-20 15:26:11 +02:00
committed by GitHub
parent d8590bb358
commit a20ca95f32
3 changed files with 17 additions and 36 deletions

View File

@ -1,13 +1,8 @@
import { getOperationName } from '@apollo/client/utilities';
import { useRecoilCallback } from 'recoil';
import { RecoilScopeContext } from '@/types/RecoilScopeContext';
import { savedBoardCardFieldsFamilyState } from '@/ui/board/states/savedBoardCardFieldsFamilyState';
import { savedTableColumnsFamilyState } from '@/ui/table/states/savedTableColumnsFamilyState';
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
import { currentViewIdScopedState } from '@/ui/view-bar/states/currentViewIdScopedState';
import { savedFiltersFamilyState } from '@/ui/view-bar/states/savedFiltersFamilyState';
import { savedSortsFamilyState } from '@/ui/view-bar/states/savedSortsFamilyState';
import { viewsScopedState } from '@/ui/view-bar/states/viewsScopedState';
import type { View } from '@/ui/view-bar/types/View';
import {
@ -77,19 +72,6 @@ export const useViews = ({
});
};
const handleResetSavedViews = useRecoilCallback(
({ reset }) =>
() => {
views.forEach((view) => {
reset(savedBoardCardFieldsFamilyState(view.id));
reset(savedTableColumnsFamilyState(view.id));
reset(savedFiltersFamilyState(view.id));
reset(savedSortsFamilyState(view.id));
});
},
[views],
);
const { loading } = useGetViewsQuery({
variables: {
where: {
@ -108,19 +90,6 @@ export const useViews = ({
if (!nextViews.length) return;
if (!currentViewId) return setCurrentViewId(nextViews[0].id);
const currentViewExists = nextViews.some(
(view) => view.id === currentViewId,
);
if (currentViewExists) return;
// currentView does not exist in the list = the user has switched workspaces
// and currentViewId is outdated.
// Select the first view in the list.
setCurrentViewId(nextViews[0].id);
// Reset outdated view recoil states.
handleResetSavedViews();
},
});