From 92ea3291286999bd8d2e971a0d0d5731f22c22f8 Mon Sep 17 00:00:00 2001
From: nitin <142569587+ehconitin@users.noreply.github.com>
Date: Thu, 22 Jan 2026 20:00:30 +0530
Subject: [PATCH] [Dashboards] Add delete widget option in widget settings
footer (#17344)
---
.../components/WidgetSettingsFooter.tsx | 27 ++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/packages/twenty-front/src/modules/command-menu/pages/page-layout/components/WidgetSettingsFooter.tsx b/packages/twenty-front/src/modules/command-menu/pages/page-layout/components/WidgetSettingsFooter.tsx
index d183e884db..b8d3a63744 100644
--- a/packages/twenty-front/src/modules/command-menu/pages/page-layout/components/WidgetSettingsFooter.tsx
+++ b/packages/twenty-front/src/modules/command-menu/pages/page-layout/components/WidgetSettingsFooter.tsx
@@ -1,4 +1,5 @@
import { usePageLayoutIdFromContextStoreTargetedRecord } from '@/command-menu/pages/page-layout/hooks/usePageLayoutFromContextStoreTargetedRecord';
+import { useDeletePageLayoutWidget } from '@/page-layout/hooks/useDeletePageLayoutWidget';
import { useDuplicatePageLayoutWidget } from '@/page-layout/hooks/useDuplicatePageLayoutWidget';
import { pageLayoutEditingWidgetIdComponentState } from '@/page-layout/states/pageLayoutEditingWidgetIdComponentState';
import { OptionsDropdownMenu } from '@/ui/layout/dropdown/components/OptionsDropdownMenu';
@@ -10,7 +11,7 @@ import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/ho
import { useLingui } from '@lingui/react/macro';
import { useId } from 'react';
import { isDefined } from 'twenty-shared/utils';
-import { IconCopyPlus } from 'twenty-ui/display';
+import { IconCopyPlus, IconTrash } from 'twenty-ui/display';
import { MenuItem } from 'twenty-ui/navigation';
export const WidgetSettingsFooter = () => {
@@ -20,7 +21,7 @@ export const WidgetSettingsFooter = () => {
const { pageLayoutId } = usePageLayoutIdFromContextStoreTargetedRecord();
const { duplicateWidget } = useDuplicatePageLayoutWidget(pageLayoutId);
-
+ const { deletePageLayoutWidget } = useDeletePageLayoutWidget(pageLayoutId);
const editingWidgetId = useRecoilComponentValue(
pageLayoutEditingWidgetIdComponentState,
pageLayoutId,
@@ -33,6 +34,13 @@ export const WidgetSettingsFooter = () => {
closeDropdown(dropdownId);
};
+ const handleDeleteWidget = () => {
+ if (isDefined(editingWidgetId)) {
+ deletePageLayoutWidget(editingWidgetId);
+ }
+ closeDropdown(dropdownId);
+ };
+
const selectedItemId = useRecoilComponentValue(
selectedItemIdComponentState,
dropdownId,
@@ -45,7 +53,7 @@ export const WidgetSettingsFooter = () => {
key="options"
dropdownId={dropdownId}
selectableListId={dropdownId}
- selectableItemIdArray={['duplicate-widget']}
+ selectableItemIdArray={['duplicate-widget', 'delete-widget']}
>
{
LeftIcon={IconCopyPlus}
/>
+
+
+
+
,
]}
/>