From 7400a3051c968b21031bfda45dbfa2c01b6e4c24 Mon Sep 17 00:00:00 2001 From: Marie <51697796+ijreilly@users.noreply.github.com> Date: Sat, 27 Dec 2025 07:11:04 +0100 Subject: [PATCH] Small improvements with views (#16821) - when a view is deleted, it is removed from left menu + from list views in dropdown - deactivated fields are not suggested as options to group records by for a view (only in FE, not forbidden by BE) --- .../view-picker/hooks/useDeleteViewFromCurrentState.ts | 8 ++++++++ .../view-picker/hooks/useGetAvailableFieldsForKanban.ts | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/twenty-front/src/modules/views/view-picker/hooks/useDeleteViewFromCurrentState.ts b/packages/twenty-front/src/modules/views/view-picker/hooks/useDeleteViewFromCurrentState.ts index 0421818eaac..79c575871c6 100644 --- a/packages/twenty-front/src/modules/views/view-picker/hooks/useDeleteViewFromCurrentState.ts +++ b/packages/twenty-front/src/modules/views/view-picker/hooks/useDeleteViewFromCurrentState.ts @@ -6,6 +6,7 @@ import { getSnapshotValue } from '@/ui/utilities/state/utils/getSnapshotValue'; import { usePersistView } from '@/views/hooks/internal/usePersistView'; import { useChangeView } from '@/views/hooks/useChangeView'; import { useGetCurrentViewOnly } from '@/views/hooks/useGetCurrentViewOnly'; +import { coreViewsByObjectMetadataIdFamilySelector } from '@/views/states/selectors/coreViewsByObjectMetadataIdFamilySelector'; import { coreViewsFromObjectMetadataItemFamilySelector } from '@/views/states/selectors/coreViewsFromObjectMetadataItemFamilySelector'; import { useCloseAndResetViewPicker } from '@/views/view-picker/hooks/useCloseAndResetViewPicker'; import { viewPickerIsDirtyComponentState } from '@/views/view-picker/states/viewPickerIsDirtyComponentState'; @@ -67,11 +68,18 @@ export const useDeleteViewFromCurrentState = (viewBarInstanceId?: string) => { ); } + set( + coreViewsByObjectMetadataIdFamilySelector(objectMetadataItem.id), + (views) => + views.filter((view) => view.id !== viewPickerReferenceViewId), + ); + await deleteView({ id: viewPickerReferenceViewId }); }, [ currentView, closeAndResetViewPicker, + objectMetadataItem.id, changeView, deleteView, viewPickerIsDirtyCallbackState, diff --git a/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts b/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts index 6c11b244df8..2c62d940b14 100644 --- a/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts +++ b/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts @@ -27,7 +27,8 @@ export const useGetAvailableFieldsForKanban = () => { const availableFieldsForKanban = objectMetadataItem?.readableFields.filter( - (field) => field.type === FieldMetadataType.SELECT, + (field) => + field.type === FieldMetadataType.SELECT && field.isActive === true, ) ?? []; const navigate = useNavigateSettings();