From 6122c7829ffe2335fa41f0fcb923b60d59abe3d7 Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Sun, 22 Mar 2026 00:17:14 +0100 Subject: [PATCH] fix: replace regex-based isNewlyCreated with explicit isNew prop Pass isNew from parent state instead of guessing from the role name pattern. Set true on create/copy, cleared on back/click-to-edit. --- .../modals/spaceSettingsPanels/RolesPanel.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/web/src/components/modals/spaceSettingsPanels/RolesPanel.tsx b/packages/web/src/components/modals/spaceSettingsPanels/RolesPanel.tsx index 187f4394..0dfaa4bf 100644 --- a/packages/web/src/components/modals/spaceSettingsPanels/RolesPanel.tsx +++ b/packages/web/src/components/modals/spaceSettingsPanels/RolesPanel.tsx @@ -77,6 +77,7 @@ export function RolesPanel({ spaceId }: RolesPanelProps) { const loadSpaceDetail = useSpaceStore((s) => s.loadSpaceDetail); const [editingRoleId, setEditingRoleId] = useState(null); + const [isNewRole, setIsNewRole] = useState(false); const [creating, setCreating] = useState(false); const [error, setError] = useState(''); @@ -96,6 +97,7 @@ export function RolesPanel({ spaceId }: RolesPanelProps) { const uniqueName = getUniqueRoleName('new role', roles); const newRole = await api.roles.create(spaceId, { name: uniqueName }); await loadSpaceDetail(spaceId); + setIsNewRole(true); setEditingRoleId(newRole.id); } catch (err) { setError(err instanceof Error ? err.message : 'Failed to create role'); @@ -115,9 +117,10 @@ export function RolesPanel({ spaceId }: RolesPanelProps) { key={editingRoleId} role={role} spaceId={spaceId} - onBack={() => setEditingRoleId(null)} - onDeleted={() => setEditingRoleId(null)} - onCopied={(newRoleId) => setEditingRoleId(newRoleId)} + isNew={isNewRole} + onBack={() => { setIsNewRole(false); setEditingRoleId(null); }} + onDeleted={() => { setIsNewRole(false); setEditingRoleId(null); }} + onCopied={(newRoleId) => { setIsNewRole(true); setEditingRoleId(newRoleId); }} /> ); } @@ -152,7 +155,7 @@ export function RolesPanel({ spaceId }: RolesPanelProps) { return ( - {isNewlyCreated && !hasChanges && ( + {isNew && !hasChanges && (
Role created — customize it below