* Change to using arrow functions Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Matheus <matheus_benini@hotmail.com> * Add lint rule --------- Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Matheus <matheus_benini@hotmail.com> Co-authored-by: Charles Bochet <charles@twenty.com>
30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import { useRecoilCallback } from 'recoil';
|
|
|
|
import { boardCardIdsByColumnIdFamilyState } from '@/ui/board/states/boardCardIdsByColumnIdFamilyState';
|
|
import { boardColumnsState } from '@/ui/board/states/boardColumnsState';
|
|
import { GetPipelineProgressQuery } from '~/generated/graphql';
|
|
|
|
export const useUpdateCompanyBoardCardIds = () =>
|
|
useRecoilCallback(
|
|
({ snapshot, set }) =>
|
|
(
|
|
pipelineProgresses: GetPipelineProgressQuery['findManyPipelineProgress'],
|
|
) => {
|
|
const boardColumns = snapshot
|
|
.getLoadable(boardColumnsState)
|
|
.valueOrThrow();
|
|
|
|
for (const boardColumn of boardColumns) {
|
|
const boardCardIds = pipelineProgresses
|
|
.filter(
|
|
(pipelineProgressToFilter) =>
|
|
pipelineProgressToFilter.pipelineStageId === boardColumn.id,
|
|
)
|
|
.map((pipelineProgress) => pipelineProgress.id);
|
|
|
|
set(boardCardIdsByColumnIdFamilyState(boardColumn.id), boardCardIds);
|
|
}
|
|
},
|
|
[],
|
|
);
|