Sammy/t 240 frontend filtering search is refactored (#122)
* refactor: use AnyEntity instead of any * refactor: remove any and brand company type * refactor: add typename for user and people * bugfix: await company to be created before displaying it * feature: await deletion before removing the lines * refactor: remove default tyep for filters * refactor: remove default type AnyEntity * refactor: remove USers from filterable types * refactor: do not depend on Filter types in Table * Add tests --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -19,10 +19,7 @@ import {
|
||||
} from '../../services/people';
|
||||
import { useSearch } from '../../services/search/search';
|
||||
import { People_Bool_Exp } from '../../generated/graphql';
|
||||
import {
|
||||
FilterConfigType,
|
||||
SelectedFilterType,
|
||||
} from '../../components/table/table-header/interface';
|
||||
import { SelectedFilterType } from '../../components/table/table-header/interface';
|
||||
import {
|
||||
reduceFiltersToWhere,
|
||||
reduceSortsToOrderBy,
|
||||
@ -64,7 +61,8 @@ function People() {
|
||||
}, [loading, setInternalData, data]);
|
||||
|
||||
const addEmptyRow = useCallback(async () => {
|
||||
const newCompany: Person = {
|
||||
const newPerson: Person = {
|
||||
__typename: 'people',
|
||||
id: uuidv4(),
|
||||
firstname: '',
|
||||
lastname: '',
|
||||
@ -75,13 +73,13 @@ function People() {
|
||||
creationDate: new Date(),
|
||||
city: '',
|
||||
};
|
||||
await insertPerson(newCompany);
|
||||
setInternalData([newCompany, ...internalData]);
|
||||
await insertPerson(newPerson);
|
||||
setInternalData([newPerson, ...internalData]);
|
||||
refetch();
|
||||
}, [internalData, setInternalData, refetch]);
|
||||
|
||||
const deleteRows = useCallback(() => {
|
||||
deletePeople(selectedRowIds);
|
||||
const deleteRows = useCallback(async () => {
|
||||
await deletePeople(selectedRowIds);
|
||||
setInternalData([
|
||||
...internalData.filter((row) => !selectedRowIds.includes(row.id)),
|
||||
]);
|
||||
@ -109,7 +107,7 @@ function People() {
|
||||
viewName="All People"
|
||||
viewIcon={<FaList />}
|
||||
availableSorts={availableSorts}
|
||||
availableFilters={availableFilters as Array<FilterConfigType>}
|
||||
availableFilters={availableFilters}
|
||||
filterSearchResults={filterSearchResults}
|
||||
onSortsUpdate={updateSorts}
|
||||
onFiltersUpdate={updateFilters}
|
||||
|
||||
@ -227,7 +227,7 @@ export const availableFilters = [
|
||||
companyFilter,
|
||||
emailFilter,
|
||||
cityFilter,
|
||||
];
|
||||
] satisfies FilterConfigType<Person, any>[];
|
||||
|
||||
const columnHelper = createColumnHelper<Person>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user