Uniformize folder structure (#693)
* Uniformize folder structure * Fix icons * Fix icons * Fix tests * Fix tests
This commit is contained in:
3
front/src/modules/pipeline/states/BoardCardContext.ts
Normal file
3
front/src/modules/pipeline/states/BoardCardContext.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import { createContext } from 'react';
|
||||
|
||||
export const BoardCardContext = createContext<string | null>(null);
|
||||
3
front/src/modules/pipeline/states/BoardColumnContext.ts
Normal file
3
front/src/modules/pipeline/states/BoardColumnContext.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import { createContext } from 'react';
|
||||
|
||||
export const BoardColumnContext = createContext<string | null>(null);
|
||||
@ -0,0 +1,31 @@
|
||||
import { selectorFamily } from 'recoil';
|
||||
|
||||
import { companyProgressesFamilyState } from '@/companies/states/companyProgressesFamilyState';
|
||||
import { BoardPipelineStageColumn } from '@/ui/board/components/Board';
|
||||
|
||||
import { boardState } from './boardState';
|
||||
|
||||
export const boardColumnTotalsFamilySelector = selectorFamily({
|
||||
key: 'boardColumnTotalsFamilySelector',
|
||||
get:
|
||||
(pipelineStageId: string) =>
|
||||
({ get }) => {
|
||||
const board = get(boardState);
|
||||
const pipelineStage = board?.find(
|
||||
(pipelineStage: BoardPipelineStageColumn) =>
|
||||
pipelineStage.pipelineStageId === pipelineStageId,
|
||||
);
|
||||
|
||||
const pipelineProgresses = pipelineStage?.pipelineProgressIds.map(
|
||||
(pipelineProgressId: string) =>
|
||||
get(companyProgressesFamilyState(pipelineProgressId)),
|
||||
);
|
||||
const pipelineStageTotal: number =
|
||||
pipelineProgresses?.reduce(
|
||||
(acc: number, curr: any) => acc + curr?.pipelineProgress.amount,
|
||||
0,
|
||||
) || 0;
|
||||
|
||||
return pipelineStageTotal;
|
||||
},
|
||||
});
|
||||
8
front/src/modules/pipeline/states/boardColumnsState.ts
Normal file
8
front/src/modules/pipeline/states/boardColumnsState.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { BoardPipelineStageColumn } from '@/ui/board/components/Board';
|
||||
|
||||
export const boardColumnsState = atom<BoardPipelineStageColumn[]>({
|
||||
key: 'boardColumnsState',
|
||||
default: [],
|
||||
});
|
||||
8
front/src/modules/pipeline/states/boardState.ts
Normal file
8
front/src/modules/pipeline/states/boardState.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { BoardPipelineStageColumn } from '@/ui/board/components/Board';
|
||||
|
||||
export const boardState = atom<BoardPipelineStageColumn[] | undefined>({
|
||||
key: 'boardState',
|
||||
default: undefined,
|
||||
});
|
||||
@ -0,0 +1,8 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { Pipeline } from '~/generated/graphql';
|
||||
|
||||
export const currentPipelineState = atom<Pipeline | undefined>({
|
||||
key: 'currentPipelineState',
|
||||
default: undefined,
|
||||
});
|
||||
6
front/src/modules/pipeline/states/isBoardLoadedState.ts
Normal file
6
front/src/modules/pipeline/states/isBoardLoadedState.ts
Normal file
@ -0,0 +1,6 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
export const isBoardLoadedState = atom<boolean>({
|
||||
key: 'isBoardLoadedState',
|
||||
default: false,
|
||||
});
|
||||
@ -0,0 +1,6 @@
|
||||
import { atomFamily } from 'recoil';
|
||||
|
||||
export const pipelineProgressIdScopedState = atomFamily<string | null, string>({
|
||||
key: 'pipelineProgressIdScopedState',
|
||||
default: null,
|
||||
});
|
||||
@ -0,0 +1,6 @@
|
||||
import { atomFamily } from 'recoil';
|
||||
|
||||
export const pipelineStageIdScopedState = atomFamily<string | null, string>({
|
||||
key: 'pipelineStageIdScopedState',
|
||||
default: null,
|
||||
});
|
||||
@ -0,0 +1,6 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
export const selectedBoardCardsState = atom<string[]>({
|
||||
key: 'isBoardCardSelectedFamilyState',
|
||||
default: [],
|
||||
});
|
||||
Reference in New Issue
Block a user