From d46820472cc5c0ef577a4d8b41af497c1e78e96a Mon Sep 17 00:00:00 2001 From: Lucas Bordeau Date: Thu, 31 Oct 2024 12:44:20 +0100 Subject: [PATCH] Fix view filter creation on new view (#8199) Wrong view was used for the creation from another view (source and target view were inverted) --- .../hooks/useCreateViewFromCurrentView.ts | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts b/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts index 648c66fd465b..6ca96acf01a6 100644 --- a/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts +++ b/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts @@ -87,9 +87,9 @@ export const useCreateViewFromCurrentView = (viewBarComponentId?: string) => { } // Here we might instead want to get view from unsaved filters ? - const view = await getViewFromCache(currentViewId); + const sourceView = await getViewFromCache(currentViewId); - if (!isDefined(view)) { + if (!isDefined(sourceView)) { return; } @@ -97,23 +97,23 @@ export const useCreateViewFromCurrentView = (viewBarComponentId?: string) => { const newView = await createOneRecord({ id: id ?? v4(), - name: name ?? view.name, - icon: icon ?? view.icon, + name: name ?? sourceView.name, + icon: icon ?? sourceView.icon, key: null, kanbanFieldMetadataId: - kanbanFieldMetadataId ?? view.kanbanFieldMetadataId, - type: type ?? view.type, - objectMetadataId: view.objectMetadataId, + kanbanFieldMetadataId ?? sourceView.kanbanFieldMetadataId, + type: type ?? sourceView.type, + objectMetadataId: sourceView.objectMetadataId, }); if (isUndefinedOrNull(newView)) { throw new Error('Failed to create view'); } - await createViewFieldRecords(view.viewFields, newView); + await createViewFieldRecords(sourceView.viewFields, newView); if (type === ViewType.Kanban) { - if (!isNonEmptyArray(view.viewGroups)) { + if (!isNonEmptyArray(sourceView.viewGroups)) { if (!isDefined(kanbanFieldMetadataId)) { throw new Error('Kanban view must have a kanban field'); } @@ -144,22 +144,24 @@ export const useCreateViewFromCurrentView = (viewBarComponentId?: string) => { await createViewGroupRecords(viewGroupsToCreate, newView); } else { - await createViewGroupRecords(view.viewGroups, newView); + await createViewGroupRecords(sourceView.viewGroups, newView); } } if (shouldCopyFiltersAndSorts === true) { const sourceViewCombinedFilterGroups = getViewFilterGroupsCombined( - view.id, + sourceView.id, ); - const sourceViewCombinedFilters = getViewFiltersCombined(view.id); - const sourceViewCombinedSorts = getViewSortsCombined(view.id); + const sourceViewCombinedFilters = getViewFiltersCombined( + sourceView.id, + ); + const sourceViewCombinedSorts = getViewSortsCombined(sourceView.id); - await createViewSortRecords(sourceViewCombinedSorts, view); - await createViewFilterRecords(sourceViewCombinedFilters, view); + await createViewSortRecords(sourceViewCombinedSorts, newView); + await createViewFilterRecords(sourceViewCombinedFilters, newView); await createViewFilterGroupRecords( sourceViewCombinedFilterGroups, - view, + newView, ); }