696a202bb9
# Description Fix "Already in navbar" false positive in the sidebar object picker: `getObjectMetadataIdsInDraft` was collecting `objectMetadataId` from all navigation menu item types (OBJECT, VIEW, RECORD), so having a pinned view or record for an object type would incorrectly block re-adding that object. Now only OBJECT-type items contribute to the duplicate check. # Video QA ## Before https://github.com/user-attachments/assets/7b853a55-6d7a-444c-92ee-bf6a75d9927c ## After https://github.com/user-attachments/assets/65e651e2-9df8-45fd-872d-00782d6b6490 Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
22 lines
740 B
TypeScript
22 lines
740 B
TypeScript
import { NavigationMenuItemType } from 'twenty-shared/types';
|
|
import { isDefined } from 'twenty-shared/utils';
|
|
import { useNavigationMenuItemsData } from './useNavigationMenuItemsData';
|
|
|
|
export const useWorkspaceNavigationMenuItems = (): {
|
|
objectMetadataIdsInWorkspaceNav: Set<string>;
|
|
} => {
|
|
const { workspaceNavigationMenuItems: rawWorkspaceNavigationMenuItems } =
|
|
useNavigationMenuItemsData();
|
|
|
|
const objectMetadataIdsInWorkspaceNav = new Set(
|
|
rawWorkspaceNavigationMenuItems
|
|
.filter((item) => item.type === NavigationMenuItemType.OBJECT)
|
|
.map((item) => item.targetObjectMetadataId)
|
|
.filter((objectMetadataId) => isDefined(objectMetadataId)),
|
|
);
|
|
|
|
return {
|
|
objectMetadataIdsInWorkspaceNav,
|
|
};
|
|
};
|