Skip to content

Commit ddc3b5f

Browse files
committed
Ok
1 parent e2a1128 commit ddc3b5f

File tree

64 files changed

+2110
-1726
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2110
-1726
lines changed

.claude/settings.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
{
22
"permissions": {
33
"allow": [
4-
"Bash(git stash:*)"
4+
"Bash(grep -E \"use.*\\\\.ts$\")",
5+
"Bash(git diff:*)",
6+
"Bash(grep -E '\\\\.\\(ts|tsx\\)$')"
57
]
68
}
79
}

packages/twenty-front/src/generated-metadata/graphql.ts

Lines changed: 15 additions & 15 deletions
Large diffs are not rendered by default.

packages/twenty-front/src/modules/command-menu-item/engine-command/record/single-record/dashboard/components/SaveDashboardSingleRecordCommand.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { HeadlessEngineCommandWrapperEffect } from '@/command-menu-item/engine-command/components/HeadlessEngineCommandWrapperEffect';
22
import { useMountedEngineCommandContext } from '@/command-menu-item/engine-command/hooks/useMountedEngineCommandContext';
33
import { useSavePageLayout } from '@/page-layout/hooks/useSavePageLayout';
4+
import { useSavePageLayoutWidgetsData } from '@/page-layout/hooks/useSavePageLayoutWidgetsData';
45
import { useSetIsPageLayoutInEditMode } from '@/page-layout/hooks/useSetIsPageLayoutInEditMode';
56
import { useSidePanelMenu } from '@/side-panel/hooks/useSidePanelMenu';
67
import { isDefined } from 'twenty-shared/utils';
@@ -17,6 +18,8 @@ export const SaveDashboardSingleRecordCommand = () => {
1718

1819
const { savePageLayout } = useSavePageLayout(pageLayoutId);
1920

21+
const { savePageLayoutWidgetsData } = useSavePageLayoutWidgetsData();
22+
2023
const { setIsPageLayoutInEditMode } =
2124
useSetIsPageLayoutInEditMode(pageLayoutId);
2225

@@ -26,6 +29,7 @@ export const SaveDashboardSingleRecordCommand = () => {
2629
const result = await savePageLayout();
2730

2831
if (result.status === 'successful') {
32+
await savePageLayoutWidgetsData(pageLayoutId);
2933
closeSidePanelMenu();
3034
setIsPageLayoutInEditMode(false);
3135
}

packages/twenty-front/src/modules/command-menu-item/engine-command/record/single-record/record-page-layout/components/SaveRecordPageLayoutSingleRecordCommand.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { HeadlessEngineCommandWrapperEffect } from '@/command-menu-item/engine-command/components/HeadlessEngineCommandWrapperEffect';
22
import { useMountedEngineCommandContext } from '@/command-menu-item/engine-command/hooks/useMountedEngineCommandContext';
33
import { useRecordPageLayoutIdFromRecordStoreOrThrow } from '@/page-layout/hooks/useRecordPageLayoutIdFromRecordStoreOrThrow';
4-
import { useSaveFieldsWidgetGroups } from '@/page-layout/hooks/useSaveFieldsWidgetGroups';
54
import { useSavePageLayout } from '@/page-layout/hooks/useSavePageLayout';
5+
import { useSavePageLayoutWidgetsData } from '@/page-layout/hooks/useSavePageLayoutWidgetsData';
66
import { useSetIsPageLayoutInEditMode } from '@/page-layout/hooks/useSetIsPageLayoutInEditMode';
77
import { useSidePanelMenu } from '@/side-panel/hooks/useSidePanelMenu';
88
import { isDefined } from 'twenty-shared/utils';
@@ -22,7 +22,7 @@ export const SaveRecordPageLayoutSingleRecordCommand = () => {
2222

2323
const { savePageLayout } = useSavePageLayout(pageLayoutId);
2424

25-
const { saveFieldsWidgetGroups } = useSaveFieldsWidgetGroups();
25+
const { savePageLayoutWidgetsData } = useSavePageLayoutWidgetsData();
2626

2727
const { setIsPageLayoutInEditMode } =
2828
useSetIsPageLayoutInEditMode(pageLayoutId);
@@ -33,7 +33,7 @@ export const SaveRecordPageLayoutSingleRecordCommand = () => {
3333
const result = await savePageLayout();
3434

3535
if (result.status === 'successful') {
36-
await saveFieldsWidgetGroups(pageLayoutId);
36+
await savePageLayoutWidgetsData(pageLayoutId);
3737

3838
closeSidePanelMenu();
3939
setIsPageLayoutInEditMode(false);

packages/twenty-front/src/modules/command-menu-item/record/single-record/dashboard/components/SaveDashboardSingleRecordCommand.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useSelectedRecordIdOrThrow } from '@/command-menu-item/record/single-re
33
import { useSidePanelMenu } from '@/side-panel/hooks/useSidePanelMenu';
44
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
55
import { useSavePageLayout } from '@/page-layout/hooks/useSavePageLayout';
6+
import { useSavePageLayoutWidgetsData } from '@/page-layout/hooks/useSavePageLayoutWidgetsData';
67
import { useSetIsPageLayoutInEditMode } from '@/page-layout/hooks/useSetIsPageLayoutInEditMode';
78
import { useAtomFamilyStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomFamilyStateValue';
89

@@ -15,6 +16,8 @@ export const SaveDashboardSingleRecordCommand = () => {
1516

1617
const { savePageLayout } = useSavePageLayout(pageLayoutId);
1718

19+
const { savePageLayoutWidgetsData } = useSavePageLayoutWidgetsData();
20+
1821
const { setIsPageLayoutInEditMode } =
1922
useSetIsPageLayoutInEditMode(pageLayoutId);
2023

@@ -24,6 +27,7 @@ export const SaveDashboardSingleRecordCommand = () => {
2427
const result = await savePageLayout();
2528

2629
if (result.status === 'successful') {
30+
await savePageLayoutWidgetsData(pageLayoutId);
2731
closeSidePanelMenu();
2832
setIsPageLayoutInEditMode(false);
2933
}

packages/twenty-front/src/modules/layout-customization/hooks/useSaveLayoutCustomization.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { navigationMenuItemsDraftState } from '@/navigation-menu-item/common/sta
44
import { navigationMenuItemsSelector } from '@/navigation-menu-item/common/states/navigationMenuItemsSelector';
55
import { filterWorkspaceNavigationMenuItems } from '@/navigation-menu-item/common/utils/filterWorkspaceNavigationMenuItems';
66
import { useSaveNavigationMenuItemsDraft } from '@/navigation-menu-item/edit/hooks/useSaveNavigationMenuItemsDraft';
7-
import { useSaveFieldsWidgetGroups } from '@/page-layout/hooks/useSaveFieldsWidgetGroups';
7+
import { useSavePageLayoutWidgetsData } from '@/page-layout/hooks/useSavePageLayoutWidgetsData';
88
import { useUpdatePageLayoutWithTabsAndWidgets } from '@/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets';
99
import { pageLayoutCurrentLayoutsComponentState } from '@/page-layout/states/pageLayoutCurrentLayoutsComponentState';
1010
import { pageLayoutDraftComponentState } from '@/page-layout/states/pageLayoutDraftComponentState';
@@ -35,7 +35,7 @@ export const useSaveLayoutCustomization = () => {
3535
const { updatePageLayoutWithTabsAndWidgets } =
3636
useUpdatePageLayoutWithTabsAndWidgets();
3737
const { exitLayoutCustomizationMode } = useExitLayoutCustomizationMode();
38-
const { saveFieldsWidgetGroups } = useSaveFieldsWidgetGroups();
38+
const { savePageLayoutWidgetsData } = useSavePageLayoutWidgetsData();
3939

4040
const featureFlags = useFeatureFlagsMap();
4141
const isRecordPageLayoutEditingEnabled =
@@ -143,7 +143,7 @@ export const useSaveLayoutCustomization = () => {
143143
}
144144
}
145145

146-
await saveFieldsWidgetGroups(pageLayoutId);
146+
await savePageLayoutWidgetsData(pageLayoutId);
147147
}
148148

149149
if (hasAnyFailure) {
@@ -165,7 +165,7 @@ export const useSaveLayoutCustomization = () => {
165165
}, [
166166
saveDraft,
167167
updatePageLayoutWithTabsAndWidgets,
168-
saveFieldsWidgetGroups,
168+
savePageLayoutWidgetsData,
169169
exitLayoutCustomizationMode,
170170
enqueueErrorSnackBar,
171171
isRecordPageLayoutEditingEnabled,

packages/twenty-front/src/modules/object-metadata/utils/mapObjectMetadataToGraphQLQuery.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ export const mapObjectMetadataToGraphQLQuery = ({
6565
}
6666

6767
if (!isDefined(fieldMetadata.morphRelations)) {
68-
throw new Error(
69-
`Field ${fieldMetadata.name} is missing, please refresh the page. If the problem persists, please contact support.`,
70-
);
68+
return [];
7169
}
7270

7371
return fieldMetadata.morphRelations.map((morphRelation) => ({
@@ -100,9 +98,7 @@ export const mapObjectMetadataToGraphQLQuery = ({
10098
}
10199

102100
if (!isDefined(fieldMetadata.morphRelations)) {
103-
throw new Error(
104-
`Field ${fieldMetadata.name} is missing, please refresh the page. If the problem persists, please contact support.`,
105-
);
101+
return [];
106102
}
107103

108104
return fieldMetadata.morphRelations.map((morphRelation) => ({

packages/twenty-front/src/modules/object-record/record-table-standalone/components/StandaloneRecordTable.tsx

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
2-
import { type RecordUpdateHookParams } from '@/object-record/record-field/ui/contexts/FieldContext';
31
import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext';
42
import { StandaloneRecordTableSetReadOnlyColumnHeadersEffect } from '@/object-record/record-table-standalone/components/StandaloneRecordTableSetReadOnlyColumnHeadersEffect';
53
import { RecordTableWithWrappers } from '@/object-record/record-table/components/RecordTableWithWrappers';
@@ -8,16 +6,6 @@ export const StandaloneRecordTable = () => {
86
const { objectNameSingular, recordIndexId, viewBarInstanceId } =
97
useRecordIndexContextOrThrow();
108

11-
const { updateOneRecord } = useUpdateOneRecord();
12-
13-
const updateEntity = ({ variables }: RecordUpdateHookParams) => {
14-
updateOneRecord({
15-
objectNameSingular,
16-
idToUpdate: variables.where.id as string,
17-
updateOneRecordInput: variables.updateOneRecordInput,
18-
});
19-
};
20-
219
return (
2210
<>
2311
<StandaloneRecordTableSetReadOnlyColumnHeadersEffect
@@ -27,7 +15,6 @@ export const StandaloneRecordTable = () => {
2715
recordTableId={recordIndexId}
2816
objectNameSingular={objectNameSingular}
2917
viewBarId={viewBarInstanceId}
30-
updateRecordMutation={updateEntity}
3118
/>
3219
</>
3320
);

packages/twenty-front/src/modules/object-record/record-table-standalone/components/StandaloneRecordTableSetReadOnlyColumnHeadersEffect.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { useIsPageLayoutInEditMode } from '@/page-layout/hooks/useIsPageLayoutInEditMode';
2+
import { areRecordTableLeftColumnsHiddenComponentState } from '@/object-record/record-table/states/areRecordTableLeftColumnsHiddenComponentState';
23
import { isRecordTableCellsNonEditableComponentState } from '@/object-record/record-table/states/isRecordTableCellsNonEditableComponentState';
34
import { isRecordTableColumnHeadersReadOnlyComponentState } from '@/object-record/record-table/states/isRecordTableColumnHeadersReadOnlyComponentState';
45
import { isRecordTableColumnResizableComponentState } from '@/object-record/record-table/states/isRecordTableColumnResizableComponentState';
@@ -21,6 +22,13 @@ export const StandaloneRecordTableSetReadOnlyColumnHeadersEffect = ({
2122
true,
2223
);
2324

25+
store.set(
26+
areRecordTableLeftColumnsHiddenComponentState.atomFamily({
27+
instanceId: recordTableId,
28+
}),
29+
true,
30+
);
31+
2432
store.set(
2533
isRecordTableColumnResizableComponentState.atomFamily({
2634
instanceId: recordTableId,

packages/twenty-front/src/modules/object-record/record-table-standalone/components/StandaloneRecordTableViewLoadEffect.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
import { type EnrichedObjectMetadataItem } from '@/object-metadata/types/EnrichedObjectMetadataItem';
12
import { useLoadRecordIndexStates } from '@/object-record/record-index/hooks/useLoadRecordIndexStates';
2-
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
33
import { lastLoadedStandaloneRecordTableViewIdComponentState } from '@/object-record/record-table-standalone/states/lastLoadedStandaloneRecordTableViewIdComponentState';
44
import { useAtomComponentState } from '@/ui/utilities/state/jotai/hooks/useAtomComponentState';
55
import { useAtomFamilySelectorValue } from '@/ui/utilities/state/jotai/hooks/useAtomFamilySelectorValue';
@@ -9,7 +9,7 @@ import { isDefined } from 'twenty-shared/utils';
99

1010
type StandaloneRecordTableViewLoadEffectProps = {
1111
viewId: string;
12-
objectMetadataItem: ObjectMetadataItem;
12+
objectMetadataItem: EnrichedObjectMetadataItem;
1313
};
1414

1515
export const StandaloneRecordTableViewLoadEffect = ({
@@ -44,8 +44,9 @@ export const StandaloneRecordTableViewLoadEffect = ({
4444
return;
4545
}
4646

47-
setLastLoadedStandaloneRecordTableViewId(viewId);
4847
loadRecordIndexStates(view, objectMetadataItem);
48+
49+
setLastLoadedStandaloneRecordTableViewId(viewId);
4950
}, [
5051
viewId,
5152
lastLoadedStandaloneRecordTableViewId,

0 commit comments

Comments
 (0)