Files
twenty/packages/twenty-front/src/modules/ui/utilities/focus/hooks/useRemoveFocusItemFromFocusStackById.ts
T
Charles Bochet 1a13258302 Keep migrating to jotai (#18064)
And we continue!
2026-02-19 12:10:02 +01:00

40 lines
1.1 KiB
TypeScript

import { useCallback } from 'react';
import { DEBUG_FOCUS_STACK } from '@/ui/utilities/focus/constants/DebugFocusStack';
import { focusStackState } from '@/ui/utilities/focus/states/focusStackState';
import { useStore } from 'jotai';
import { logDebug } from '~/utils/logDebug';
export const useRemoveFocusItemFromFocusStackById = () => {
const store = useStore();
const removeFocusItemFromFocusStackById = useCallback(
({ focusId }: { focusId: string }) => {
const focusStack = store.get(focusStackState.atom);
const removedFocusItem = focusStack.find(
(focusStackItem) => focusStackItem.focusId === focusId,
);
if (!removedFocusItem) {
return;
}
const newFocusStack = focusStack.filter(
(focusStackItem) => focusStackItem.focusId !== focusId,
);
store.set(focusStackState.atom, newFocusStack);
if (DEBUG_FOCUS_STACK) {
logDebug(`DEBUG: removeFocusItemFromFocusStack ${focusId}`, {
newFocusStack,
});
}
},
[store],
);
return { removeFocusItemFromFocusStackById };
};