From 161e8670d0bb591a5d770e4afc96cdf1a1dafac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Malfait?= Date: Thu, 15 Jan 2026 14:42:23 +0100 Subject: [PATCH] fix: show save button when creating a new role (#17163) ## Summary Fixes a regression where the save button was not visible when creating a new role. ## Root Cause PR #17062 (RLS FE implementation) introduced a change to the `isDirty` logic that added `isDefined(settingsPersistedRole)` as a condition: ```typescript const isDirty = isDefined(settingsPersistedRole) && !isDeeplyEqual(settingsDraftRole, settingsPersistedRole); ``` However, in create mode, `settingsPersistedRole` is intentionally set to `undefined` (in `SettingsRoleCreateEffect.tsx`), causing `isDirty` to always evaluate to `false` and hiding the save button. ## Fix Added `isCreateMode` to the `isDirty` condition so the save button shows when creating a new role: ```typescript const isDirty = isCreateMode || (isDefined(settingsPersistedRole) && !isDeeplyEqual(settingsDraftRole, settingsPersistedRole)); ``` cc @Weiko --- > [!NOTE] > Restores save button visibility when creating a role. > > - Simplifies `isDirty` to `!isDeeplyEqual(settingsDraftRole, settingsPersistedRole)`, removing the `isDefined(settingsPersistedRole)` check so create-mode is considered dirty. > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 21593d54c373b15b09406502f8d931cb5e203e46. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). --------- Co-authored-by: Weiko --- .../modules/settings/roles/role/components/SettingsRole.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx index e144f347ea..394c82d495 100644 --- a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx +++ b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx @@ -87,9 +87,7 @@ export const SettingsRole = ({ roleId, isCreateMode }: SettingsRoleProps) => { }, ]; - const isDirty = - isDefined(settingsPersistedRole) && - !isDeeplyEqual(settingsDraftRole, settingsPersistedRole); + const isDirty = !isDeeplyEqual(settingsDraftRole, settingsPersistedRole); const handleCancel = () => { if (isCreateMode) {