diff --git a/front/src/modules/metadata/components/ObjectTableEffect.tsx b/front/src/modules/metadata/components/ObjectTableEffect.tsx
deleted file mode 100644
index bda841aba..000000000
--- a/front/src/modules/metadata/components/ObjectTableEffect.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import { useEffect } from 'react';
-import { useSetRecoilState } from 'recoil';
-
-import { availableTableColumnsScopedState } from '@/ui/object/record-table/states/availableTableColumnsScopedState';
-import { useView } from '@/views/hooks/useView';
-import { ViewType } from '@/views/types/ViewType';
-
-import { useObjectMetadataItemInContext } from '../hooks/useObjectMetadataItemInContext';
-
-export const ObjectTableEffect = () => {
- const {
- setAvailableSortDefinitions,
- setAvailableFilterDefinitions,
- setAvailableFieldDefinitions,
- setViewType,
- setViewObjectId,
- } = useView();
-
- const {
- columnDefinitions,
- filterDefinitions,
- sortDefinitions,
- foundObjectMetadataItem,
- } = useObjectMetadataItemInContext();
-
- const tableScopeId = foundObjectMetadataItem?.namePlural ?? '';
-
- const setAvailableTableColumns = useSetRecoilState(
- availableTableColumnsScopedState(tableScopeId),
- );
-
- useEffect(() => {
- if (!foundObjectMetadataItem) {
- return;
- }
- setViewObjectId?.(foundObjectMetadataItem.id);
- setViewType?.(ViewType.Table);
-
- setAvailableSortDefinitions?.(sortDefinitions);
- setAvailableFilterDefinitions?.(filterDefinitions);
- setAvailableFieldDefinitions?.(columnDefinitions);
-
- setAvailableTableColumns(columnDefinitions);
- }, [
- setAvailableTableColumns,
- setViewObjectId,
- setViewType,
- columnDefinitions,
- setAvailableSortDefinitions,
- setAvailableFilterDefinitions,
- setAvailableFieldDefinitions,
- foundObjectMetadataItem,
- sortDefinitions,
- filterDefinitions,
- ]);
-
- return <>>;
-};
diff --git a/front/src/modules/metadata/components/RecordTable.tsx b/front/src/modules/metadata/components/RecordTableContainer.tsx
similarity index 86%
rename from front/src/modules/metadata/components/RecordTable.tsx
rename to front/src/modules/metadata/components/RecordTableContainer.tsx
index 3cecf0972..1e21fba6c 100644
--- a/front/src/modules/metadata/components/RecordTable.tsx
+++ b/front/src/modules/metadata/components/RecordTableContainer.tsx
@@ -18,10 +18,8 @@ import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts';
import { useObjectMetadataItemInContext } from '../hooks/useObjectMetadataItemInContext';
import { useUpdateOneObject } from '../hooks/useUpdateOneObject';
-import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
-import { ObjectTableEffect } from './ObjectTableEffect';
-import { ObjectRecordTableEffect } from './RecordTableEffect';
+import { RecordTableEffect } from './RecordTableEffect';
const StyledContainer = styled.div`
display: flex;
@@ -30,17 +28,14 @@ const StyledContainer = styled.div`
overflow: auto;
`;
-export type ObjectTableProps = Pick<
- ObjectMetadataItemIdentifier,
- 'objectNamePlural'
->;
+export const RecordTableContainer = () => {
+ const { columnDefinitions, foundObjectMetadataItem, objectNamePlural } =
+ useObjectMetadataItemInContext();
-export const ObjectTable = ({ objectNamePlural }: ObjectTableProps) => {
const { updateOneObject } = useUpdateOneObject({
objectNamePlural,
});
- const { columnDefinitions, foundObjectMetadataItem } =
- useObjectMetadataItemInContext();
+
const tableScopeId = foundObjectMetadataItem?.namePlural ?? '';
const viewScopeId = objectNamePlural ?? '';
@@ -99,8 +94,7 @@ export const ObjectTable = ({ objectNamePlural }: ObjectTableProps) => {
optionsDropdownButton={}
optionsDropdownScopeId={TableOptionsDropdownId}
/>
-
-
+
diff --git a/front/src/modules/metadata/components/RecordTableEffect.tsx b/front/src/modules/metadata/components/RecordTableEffect.tsx
index 618740808..90ddde0e4 100644
--- a/front/src/modules/metadata/components/RecordTableEffect.tsx
+++ b/front/src/modules/metadata/components/RecordTableEffect.tsx
@@ -1,28 +1,38 @@
import { useEffect } from 'react';
+import { useSetRecoilState } from 'recoil';
import { turnFiltersIntoWhereClauseV2 } from '@/ui/object/object-filter-dropdown/utils/turnFiltersIntoWhereClauseV2';
import { turnSortsIntoOrderByV2 } from '@/ui/object/object-sort-dropdown/utils/turnSortsIntoOrderByV2';
import { useSetRecordTableData } from '@/ui/object/record-table/hooks/useSetRecordTableData';
+import { availableTableColumnsScopedState } from '@/ui/object/record-table/states/availableTableColumnsScopedState';
import { TableRecoilScopeContext } from '@/ui/object/record-table/states/recoil-scope-contexts/TableRecoilScopeContext';
import { tableFiltersScopedState } from '@/ui/object/record-table/states/tableFiltersScopedState';
import { tableSortsScopedState } from '@/ui/object/record-table/states/tableSortsScopedState';
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
+import { useView } from '@/views/hooks/useView';
+import { ViewType } from '@/views/types/ViewType';
import { useFindManyObjects } from '../hooks/useFindManyObjects';
import { useObjectMetadataItemInContext } from '../hooks/useObjectMetadataItemInContext';
-import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
-export type ObjectRecordTableEffectProps = Pick<
- ObjectMetadataItemIdentifier,
- 'objectNamePlural'
->;
+export const RecordTableEffect = () => {
+ const {
+ columnDefinitions,
+ filterDefinitions,
+ sortDefinitions,
+ foundObjectMetadataItem,
+ objectNamePlural,
+ } = useObjectMetadataItemInContext();
+
+ const {
+ setAvailableSortDefinitions,
+ setAvailableFilterDefinitions,
+ setAvailableFieldDefinitions,
+ setViewType,
+ setViewObjectId,
+ } = useView();
-// This should be migrated to RecordTable at some point
-export const ObjectRecordTableEffect = ({
- objectNamePlural,
-}: ObjectRecordTableEffectProps) => {
const setRecordTableData = useSetRecordTableData();
- const { foundObjectMetadataItem } = useObjectMetadataItemInContext();
const tableFilters = useRecoilScopedValue(
tableFiltersScopedState,
@@ -54,5 +64,36 @@ export const ObjectRecordTableEffect = ({
}
}, [objects, setRecordTableData, loading]);
+ const tableScopeId = foundObjectMetadataItem?.namePlural ?? '';
+
+ const setAvailableTableColumns = useSetRecoilState(
+ availableTableColumnsScopedState(tableScopeId),
+ );
+
+ useEffect(() => {
+ if (!foundObjectMetadataItem) {
+ return;
+ }
+ setViewObjectId?.(foundObjectMetadataItem.id);
+ setViewType?.(ViewType.Table);
+
+ setAvailableSortDefinitions?.(sortDefinitions);
+ setAvailableFilterDefinitions?.(filterDefinitions);
+ setAvailableFieldDefinitions?.(columnDefinitions);
+
+ setAvailableTableColumns(columnDefinitions);
+ }, [
+ setAvailableTableColumns,
+ setViewObjectId,
+ setViewType,
+ columnDefinitions,
+ setAvailableSortDefinitions,
+ setAvailableFilterDefinitions,
+ setAvailableFieldDefinitions,
+ foundObjectMetadataItem,
+ sortDefinitions,
+ filterDefinitions,
+ ]);
+
return <>>;
};
diff --git a/front/src/modules/metadata/components/RecordTablePage.tsx b/front/src/modules/metadata/components/RecordTablePage.tsx
index dacbac561..49ab9c675 100644
--- a/front/src/modules/metadata/components/RecordTablePage.tsx
+++ b/front/src/modules/metadata/components/RecordTablePage.tsx
@@ -2,7 +2,7 @@ import { useEffect } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import styled from '@emotion/styled';
-import { ObjectTable } from '@/metadata/components/RecordTable';
+import { RecordTableContainer } from '@/metadata/components/RecordTableContainer';
import { ObjectMetadataItemIdentifier } from '@/metadata/types/ObjectMetadataItemIdentifier';
import { IconBuildingSkyscraper } from '@/ui/display/icon';
import { PageAddButton } from '@/ui/layout/page/PageAddButton';
@@ -67,7 +67,7 @@ export const RecordTablePage = () => {
-
+