Migrate view field to new data model - Part 2 (#2270)

* Migrate view field to new data model

* Migrate view fields to new model
This commit is contained in:
Charles Bochet
2023-10-28 19:13:48 +02:00
committed by GitHub
parent b591023eb3
commit 685d342170
168 changed files with 960 additions and 4568 deletions

View File

@ -27,11 +27,11 @@ import { getLogoUrlFromDomainName } from '~/utils';
export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[] =
[
{
key: 'displayName',
name: 'People',
fieldId: 'displayName',
label: 'People',
Icon: IconUser,
size: 210,
index: 0,
position: 0,
type: 'double-text-chip',
metadata: {
firstValueFieldName: 'firstName',
@ -45,12 +45,12 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
basePathToShowPage: '/person/',
} satisfies ColumnDefinition<FieldDoubleTextChipMetadata>,
{
key: 'email',
name: 'Email',
fieldId: 'email',
label: 'Email',
Icon: IconMail,
size: 150,
type: 'email',
index: 1,
position: 1,
metadata: {
fieldName: 'email',
placeHolder: 'Email', // Hack: Fake character to prevent password-manager from filling the field
@ -58,11 +58,11 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
infoTooltipContent: 'Contacts Email.',
} satisfies ColumnDefinition<FieldEmailMetadata>,
{
key: 'company',
name: 'Company',
fieldId: 'company',
label: 'Company',
Icon: IconBuildingSkyscraper,
size: 150,
index: 2,
position: 2,
type: 'relation',
metadata: {
fieldName: 'company',
@ -78,11 +78,11 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
},
} satisfies ColumnDefinition<FieldRelationMetadata>,
{
key: 'phone',
name: 'Phone',
fieldId: 'phone',
label: 'Phone',
Icon: IconPhone,
size: 150,
index: 3,
position: 3,
type: 'phone',
metadata: {
fieldName: 'phone',
@ -91,11 +91,11 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
infoTooltipContent: 'Contacts phone number.',
} satisfies ColumnDefinition<FieldPhoneMetadata>,
{
key: 'createdAt',
name: 'Creation',
fieldId: 'createdAt',
label: 'Creation',
Icon: IconCalendarEvent,
size: 150,
index: 4,
position: 4,
type: 'date',
metadata: {
fieldName: 'createdAt',
@ -103,11 +103,11 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
infoTooltipContent: 'Date when the contact was added.',
} satisfies ColumnDefinition<FieldDateMetadata>,
{
key: 'city',
name: 'City',
fieldId: 'city',
label: 'City',
Icon: IconMap,
size: 150,
index: 5,
position: 5,
type: 'text',
metadata: {
fieldName: 'city',
@ -116,11 +116,11 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
infoTooltipContent: 'Contacts city.',
} satisfies ColumnDefinition<FieldTextMetadata>,
{
key: 'jobTitle',
name: 'Job title',
fieldId: 'jobTitle',
label: 'Job title',
Icon: IconBriefcase,
size: 150,
index: 6,
position: 6,
type: 'text',
metadata: {
fieldName: 'jobTitle',
@ -129,11 +129,11 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
infoTooltipContent: 'Contacts job title.',
} satisfies ColumnDefinition<FieldTextMetadata>,
{
key: 'linkedin',
name: 'LinkedIn',
fieldId: 'linkedin',
label: 'LinkedIn',
Icon: IconBrandLinkedin,
size: 150,
index: 7,
position: 7,
type: 'url',
metadata: {
fieldName: 'linkedinUrl',
@ -142,11 +142,11 @@ export const peopleAvailableFieldDefinitions: ColumnDefinition<FieldMetadata>[]
infoTooltipContent: 'Contacts Linkedin account.',
} satisfies ColumnDefinition<FieldURLMetadata>,
{
key: 'x',
name: 'Twitter',
fieldId: 'x',
label: 'Twitter',
Icon: IconBrandX,
size: 150,
index: 8,
position: 8,
type: 'url',
metadata: {
fieldName: 'xUrl',

View File

@ -11,8 +11,6 @@ import { useUpsertDataTableItem } from '@/ui/data/data-table/hooks/useUpsertData
import { TableOptionsDropdown } from '@/ui/data/data-table/options/components/TableOptionsDropdown';
import { ViewBar } from '@/views/components/ViewBar';
import { ViewBarEffect } from '@/views/components/ViewBarEffect';
import { useViewFields } from '@/views/hooks/internal/useViewFields';
import { useView } from '@/views/hooks/useView';
import { ViewScope } from '@/views/scopes/ViewScope';
import {
UpdateOnePersonMutationVariables,
@ -30,9 +28,6 @@ export const PeopleTable = () => {
const [updateEntityMutation] = useUpdateOnePersonMutation();
const upsertDataTableItem = useUpsertDataTableItem();
const { persistViewFields } = useViewFields(tableViewScopeId);
const { setCurrentViewFields } = useView({ viewScopeId: tableViewScopeId });
const { setContextMenuEntries } = usePersonTableContextMenuEntries();
const { setActionBarEntries } = usePersonTableActionBarEntries();
@ -56,10 +51,7 @@ export const PeopleTable = () => {
<StyledContainer>
<TableContext.Provider
value={{
onColumnsChange: (columns) => {
setCurrentViewFields?.(columns);
persistViewFields(columns);
},
onColumnsChange: () => {},
}}
>
<ViewBarEffect />

View File

@ -4,12 +4,9 @@ import { peopleAvailableFieldDefinitions } from '@/people/constants/peopleAvaila
import { availableTableColumnsScopedState } from '@/ui/data/data-table/states/availableTableColumnsScopedState';
import { TableRecoilScopeContext } from '@/ui/data/data-table/states/recoil-scope-contexts/TableRecoilScopeContext';
import { tableColumnsScopedState } from '@/ui/data/data-table/states/tableColumnsScopedState';
import { tableFiltersScopedState } from '@/ui/data/data-table/states/tableFiltersScopedState';
import { tableSortsScopedState } from '@/ui/data/data-table/states/tableSortsScopedState';
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
import { useView } from '@/views/hooks/useView';
import { useViewInternalStates } from '@/views/hooks/useViewInternalStates';
import { ViewType } from '~/generated/graphql';
import { ViewType } from '@/views/types/ViewType';
import { peopleAvailableFilters } from '~/pages/people/people-filters';
import { peopleAvailableSorts } from '~/pages/people/people-sorts';
@ -21,24 +18,12 @@ const PeopleTableEffect = () => {
setViewType,
setViewObjectId,
} = useView();
const { currentViewFields, currentViewSorts, currentViewFilters } =
useViewInternalStates();
const [, setTableColumns] = useRecoilScopedState(
tableColumnsScopedState,
TableRecoilScopeContext,
);
const [, setTableSorts] = useRecoilScopedState(
tableSortsScopedState,
TableRecoilScopeContext,
);
const [, setTableFilters] = useRecoilScopedState(
tableFiltersScopedState,
TableRecoilScopeContext,
);
const [, setAvailableTableColumns] = useRecoilScopedState(
availableTableColumnsScopedState,
TableRecoilScopeContext,
@ -61,29 +46,29 @@ const PeopleTableEffect = () => {
setViewObjectId,
setViewType,
]);
useEffect(() => {
if (currentViewFields) {
setTableColumns([...currentViewFields].sort((a, b) => a.index - b.index));
}
}, [currentViewFields, setTableColumns]);
// useEffect(() => {
// if (currentViewFields) {
// setTableColumns([...currentViewFields].sort((a, b) => a.index - b.index));
// }
// }, [currentViewFields, setTableColumns]);
useEffect(() => {
if (currentViewSorts) {
setTableSorts(currentViewSorts);
}
}, [currentViewFields, currentViewSorts, setTableColumns, setTableSorts]);
// useEffect(() => {
// if (currentViewSorts) {
// setTableSorts(currentViewSorts);
// }
// }, [currentViewFields, currentViewSorts, setTableColumns, setTableSorts]);
useEffect(() => {
if (currentViewFilters) {
setTableFilters(currentViewFilters);
}
}, [
currentViewFields,
currentViewFilters,
setTableColumns,
setTableFilters,
setTableSorts,
]);
// useEffect(() => {
// if (currentViewFilters) {
// setTableFilters(currentViewFilters);
// }
// }, [
// currentViewFields,
// currentViewFilters,
// setTableColumns,
// setTableFilters,
// setTableSorts,
// ]);
return <></>;
};