3886 - Shortcut Sort/Filter (#3901)

Closes #3886

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
Kanav Arora
2024-04-04 04:13:44 +05:30
committed by GitHub
parent b65d82c274
commit bcf5268f7f
22 changed files with 473 additions and 63 deletions

View File

@ -23,6 +23,14 @@ export const useColumnDefinitionsFromFieldMetadata = (
[objectMetadataItem],
);
const filterDefinitions = formatFieldMetadataItemsAsFilterDefinitions({
fields: activeFieldMetadataItems,
});
const sortDefinitions = formatFieldMetadataItemsAsSortDefinitions({
fields: activeFieldMetadataItems,
});
const columnDefinitions: ColumnDefinition<FieldMetadata>[] = useMemo(
() =>
objectMetadataItem
@ -35,18 +43,30 @@ export const useColumnDefinitionsFromFieldMetadata = (
}),
)
.filter(filterAvailableTableColumns)
.map((column) => {
const existsInFilterDefinitions = filterDefinitions.some(
(filter) => filter.fieldMetadataId === column.fieldMetadataId,
);
const existsInSortDefinitions = sortDefinitions.some(
(sort) => sort.fieldMetadataId === column.fieldMetadataId,
);
return {
...column,
isFilterable: existsInFilterDefinitions,
isSortable: existsInSortDefinitions,
};
})
: [],
[activeFieldMetadataItems, objectMetadataItem],
[
activeFieldMetadataItems,
objectMetadataItem,
filterDefinitions,
sortDefinitions,
],
);
const filterDefinitions = formatFieldMetadataItemsAsFilterDefinitions({
fields: activeFieldMetadataItems,
});
const sortDefinitions = formatFieldMetadataItemsAsSortDefinitions({
fields: activeFieldMetadataItems,
});
return {
columnDefinitions,
filterDefinitions,