Board V2 - Part 1 (#2619)

* improve useComputeDefinitionsFromFieldMetadata to prevent infinit loops

* fix viewFields

* improve initial seeding

* fix height 100%

* fix filters and sorts

* allow filter on currency

* remove probability from filter

* fix opportunities count

* fix persist filters and sorts
This commit is contained in:
bosiraphael
2023-11-21 18:01:30 +01:00
committed by GitHub
parent 9912f7a336
commit ad8331aa89
12 changed files with 152 additions and 95 deletions

View File

@ -1,3 +1,5 @@
import { useMemo } from 'react';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata';
import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition';
@ -10,25 +12,24 @@ import { formatFieldMetadataItemsAsSortDefinitions } from '../utils/formatFieldM
export const useComputeDefinitionsFromFieldMetadata = (
objectMetadataItem?: Nullable<ObjectMetadataItem>,
) => {
if (!objectMetadataItem) {
return {
columnDefinitions: [],
filterDefinitions: [],
sortDefinitions: [],
};
}
const activeFieldMetadataItems = objectMetadataItem.fields.filter(
({ isActive }) => isActive,
const activeFieldMetadataItems = useMemo(
() =>
objectMetadataItem
? objectMetadataItem.fields.filter(({ isActive }) => isActive)
: [],
[objectMetadataItem],
);
const columnDefinitions: ColumnDefinition<FieldMetadata>[] =
activeFieldMetadataItems.map((field, index) =>
formatFieldMetadataItemAsColumnDefinition({
position: index,
field,
}),
);
const columnDefinitions: ColumnDefinition<FieldMetadata>[] = useMemo(
() =>
activeFieldMetadataItems.map((field, index) =>
formatFieldMetadataItemAsColumnDefinition({
position: index,
field,
}),
),
[activeFieldMetadataItems],
);
const filterDefinitions = formatFieldMetadataItemsAsFilterDefinitions({
fields: activeFieldMetadataItems,