Files
twenty_crm/front/src/modules/metadata/components/ObjectTable.tsx
Lucas Bordeau f1670f0cf4 Feat/metadata datatable types (#2175)
* Handled new url v2 type

* Fixed refetch queries

* wip

* Ok delete but views bug

* Fix lint

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2023-10-21 14:07:18 +02:00

62 lines
1.8 KiB
TypeScript

import { DataTable } from '@/ui/data/data-table/components/DataTable';
import { TableContext } from '@/ui/data/data-table/contexts/TableContext';
import { TableRecoilScopeContext } from '@/ui/data/data-table/states/recoil-scope-contexts/TableRecoilScopeContext';
import { ViewBarContext } from '@/ui/data/view-bar/contexts/ViewBarContext';
import { useMetadataTableViews } from '../hooks/useMetadataTableViews';
import { useUpdateOneObject } from '../hooks/useUpdateOneObject';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { ObjectDataTableEffect } from './ObjectDataTableEffect';
export type ObjectTableProps = MetadataObjectIdentifier;
export const ObjectTable = ({ objectNamePlural }: ObjectTableProps) => {
const { createView, deleteView, submitCurrentView, updateView } =
useMetadataTableViews();
const { updateOneObject } = useUpdateOneObject({
objectNamePlural,
});
const updateEntity = ({
variables,
}: {
variables: {
where: { id: string };
data: {
[fieldName: string]: any;
};
};
}) => {
updateOneObject?.({
idToUpdate: variables.where.id,
input: variables.data,
});
};
return (
<TableContext.Provider
value={{
onColumnsChange: () => {
//
},
}}
>
<ObjectDataTableEffect objectNamePlural={objectNamePlural} />
<ViewBarContext.Provider
value={{
defaultViewName: `All ${objectNamePlural}`,
onCurrentViewSubmit: submitCurrentView,
onViewCreate: createView,
onViewEdit: updateView,
onViewRemove: deleteView,
ViewBarRecoilScopeContext: TableRecoilScopeContext,
}}
>
<DataTable updateEntityMutation={updateEntity} />
</ViewBarContext.Provider>
</TableContext.Provider>
);
};