fix: use correct userWorkspaceId for navigation menu comparisons (#21299)

## What does this PR do?

Fixes a bug where `NavigationMenuItem.userWorkspaceId` was being
compared/set to `WorkspaceMember.id` instead of the correct
`UserWorkspace.id`, causing the favorites functionality to not work
correctly.

Fixes #21291

## Problem

The `isFavorite` check in `ViewPickerOptionDropdown` and
`createManyNavigationMenuItems` calls in multiple files were using
`currentWorkspaceMemberId` (which is `WorkspaceMember.id` from the
`workspace_*` schema) instead of the correct `UserWorkspace.id` (from
the `core` schema).

This caused:
- `isFavorite` to always return `false` for user favorites
- Navigation menu items to be created with incorrect `userWorkspaceId`

## Root Cause

In `useNavigationMenuItemsData.ts`:
- `currentWorkspaceMemberId` was derived from
`currentWorkspaceMember?.id` (WorkspaceMember.id)
- But `NavigationMenuItem.userWorkspaceId` expects a `UserWorkspace.id`
- These are two different entities from different schemas (core vs
workspace)

## Solution

1. Added `currentUserWorkspaceId` to the `useNavigationMenuItemsData`
hook return type
2. `currentUserWorkspaceId` is derived from
`currentWorkspaceMember?.userWorkspaceId`
3. Updated all comparisons and assignments to use
`currentUserWorkspaceId` when dealing with `userWorkspaceId`

## Files Changed

-
`packages/twenty-front/src/modules/navigation-menu-item/display/hooks/useNavigationMenuItemsData.ts`
- Added `currentUserWorkspaceId` to return type
-
`packages/twenty-front/src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx`
- Fixed `isFavorite` check and `createManyNavigationMenuItems` call
-
`packages/twenty-front/src/modules/command-menu-item/engine-command/record/single-record/components/AddToFavoritesSingleRecordCommand.tsx`
- Fixed `createManyNavigationMenuItems` call
-
`packages/twenty-front/src/modules/navigation-menu-item/edit/hooks/useNavigationMenuItemEditController.ts`
- Fixed `targetUserWorkspaceId` assignment

## Testing

- No existing tests directly cover the `useNavigationMenuItemsData` hook
- The fix is a simple type/field correction that should not affect other
components
- CI will verify TypeScript compilation and linting

## Checklist

- [x] I have read the
[CONTRIBUTING.md](https://github.com/twentyhq/twenty/blob/main/.github/CONTRIBUTING.md)
file
- [x] Changes are tested locally (TypeScript compilation)
- [x] Commit message follows repository conventions
- [x] PR is linked to the relevant issue (#21291)

---------

Co-authored-by: Mani bharadwaj <Manibharadwaj@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Mani bharadwaj
2026-06-08 14:47:07 +05:30
committed by GitHub
parent 6bfbe036f6
commit 79c9c75776
5 changed files with 11 additions and 7 deletions
@@ -18,7 +18,7 @@ export const AddToFavoritesSingleRecordCommand = () => {
}
const { createManyNavigationMenuItems } = useCreateManyNavigationMenuItems();
const { navigationMenuItems, currentWorkspaceMemberId } =
const { navigationMenuItems, currentUserWorkspaceId } =
useNavigationMenuItemsData();
const handleExecute = () => {
@@ -41,7 +41,7 @@ export const AddToFavoritesSingleRecordCommand = () => {
type: NavigationMenuItemType.RECORD,
targetRecordId: selectedRecord.id,
targetObjectMetadataId: objectMetadataItem.id,
userWorkspaceId: currentWorkspaceMemberId,
userWorkspaceId: currentUserWorkspaceId,
position: maxPosition + 1,
},
]);