e6b20b5ff2
* Fix drag-performance * Fixes * Fixes * Fixes * Fixes
28 lines
1000 B
TypeScript
28 lines
1000 B
TypeScript
// Atlassian dnd does not support StrictMode from RN 18, so we use a fork @hello-pangea/dnd https://github.com/atlassian/react-beautiful-dnd/issues/2350
|
|
import { useRecoilCallback } from 'recoil';
|
|
|
|
import { boardCardIdsByColumnIdFamilyState } from '../states/boardCardIdsByColumnIdFamilyState';
|
|
import { boardColumnsState } from '../states/boardColumnsState';
|
|
|
|
export function useRemoveCardIds() {
|
|
return useRecoilCallback(
|
|
({ snapshot, set }) =>
|
|
(cardIdToRemove: string[]) => {
|
|
const boardColumns = snapshot
|
|
.getLoadable(boardColumnsState)
|
|
.valueOrThrow();
|
|
|
|
boardColumns.forEach((boardColumn) => {
|
|
const columnCardIds = snapshot
|
|
.getLoadable(boardCardIdsByColumnIdFamilyState(boardColumn.id))
|
|
.valueOrThrow();
|
|
set(
|
|
boardCardIdsByColumnIdFamilyState(boardColumn.id),
|
|
columnCardIds.filter((cardId) => !cardIdToRemove.includes(cardId)),
|
|
);
|
|
});
|
|
},
|
|
[],
|
|
);
|
|
}
|