Migrate view field to new data model - Part 2 (#2270)

* Migrate view field to new data model

* Migrate view fields to new model
This commit is contained in:
Charles Bochet
2023-10-28 19:13:48 +02:00
committed by GitHub
parent b591023eb3
commit 685d342170
168 changed files with 960 additions and 4568 deletions

View File

@ -49,7 +49,7 @@ type BoardOptionsMenu = 'fields' | 'stage-creation' | 'stages';
type ColumnForCreate = {
id: string;
colorCode: ThemeColor;
index: number;
position: number;
title: string;
};
@ -93,7 +93,7 @@ export const BoardOptionsDropdownContent = ({
const columnToCreate: ColumnForCreate = {
id: v4(),
colorCode: 'gray',
index: boardColumns.length,
position: boardColumns.length,
title: stageInputRef.current.value,
};

View File

@ -132,7 +132,7 @@ export const EntityBoard = ({
);
const sortedBoardColumns = [...boardColumns].sort((a, b) => {
return a.index - b.index;
return a.position - b.position;
});
const boardRef = useRef<HTMLDivElement>(null);
@ -155,8 +155,9 @@ export const EntityBoard = ({
value={{
id: column.id,
columnDefinition: column,
isFirstColumn: column.index === 0,
isLastColumn: column.index === sortedBoardColumns.length - 1,
isFirstColumn: column.position === 0,
isLastColumn:
column.position === sortedBoardColumns.length - 1,
}}
>
<RecoilScope

View File

@ -1,5 +1,6 @@
import { ColumnDefinition } from '@/ui/data/data-table/types/ColumnDefinition';
import { FieldMetadata } from '@/ui/data/field/types/FieldMetadata';
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
import { ViewFieldForVisibility } from '@/views/types/ViewFieldForVisibility';
import { boardCardFieldsScopedState } from '../states/boardCardFieldsScopedState';
@ -13,10 +14,12 @@ export const useBoardCardFields = () => {
BoardRecoilScopeContext,
);
const handleFieldVisibilityChange = (field: ViewFieldForVisibility) => {
const handleFieldVisibilityChange = (
field: Omit<ColumnDefinition<FieldMetadata>, 'size' | 'position'>,
) => {
setBoardCardFields((previousFields) =>
previousFields.map((previousField) =>
previousField.key === field.key
previousField.fieldId === field.fieldId
? { ...previousField, isVisible: !field.isVisible }
: previousField,
),

View File

@ -21,7 +21,7 @@ export const useBoardColumns = () => {
updatePipelineStageMutation({
variables: {
data: {
index: stage.index,
position: stage.position,
},
id: stage.id,
},

View File

@ -12,5 +12,5 @@ export const boardCardFieldsByKeyScopedSelector = selectorFamily({
({ get }) =>
get(boardCardFieldsScopedState(scopeId)).reduce<
Record<string, BoardFieldDefinition<FieldMetadata>>
>((result, field) => ({ ...result, [field.key]: field }), {}),
>((result, field) => ({ ...result, [field.fieldId]: field }), {}),
});

View File

@ -9,10 +9,10 @@ export const hiddenBoardCardFieldsScopedSelector = selectorFamily({
(scopeId: string) =>
({ get }) => {
const fields = get(boardCardFieldsScopedState(scopeId));
const fieldKeys = fields.map(({ key }) => key);
const fieldKeys = fields.map(({ fieldId }) => fieldId);
const otherAvailableKeys = get(
availableBoardCardFieldsScopedState(scopeId),
).filter(({ key }) => !fieldKeys.includes(key));
).filter(({ fieldId }) => !fieldKeys.includes(fieldId));
return [
...fields.filter((field) => !field.isVisible),

View File

@ -12,5 +12,5 @@ export const savedBoardCardFieldsByKeyFamilySelector = selectorFamily({
({ get }) =>
get(savedBoardCardFieldsFamilyState(viewId)).reduce<
Record<string, BoardFieldDefinition<FieldMetadata>>
>((result, field) => ({ ...result, [field.key]: field }), {}),
>((result, field) => ({ ...result, [field.fieldId]: field }), {}),
});

View File

@ -3,6 +3,6 @@ import { ThemeColor } from '@/ui/theme/constants/colors';
export type BoardColumnDefinition = {
id: string;
title: string;
index: number;
position: number;
colorCode?: ThemeColor;
};

View File

@ -3,6 +3,6 @@ import { FieldMetadata } from '@/ui/data/field/types/FieldMetadata';
export type BoardFieldDefinition<T extends FieldMetadata> =
FieldDefinition<T> & {
index: number;
position: number;
isVisible?: boolean;
};