Fix object metadata view creation issue (#9875)
Fixes https://github.com/twentyhq/core-team-issues/issues/26 Fixes https://github.com/twentyhq/twenty/issues/9350
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import { sortFavorites } from '@/favorites/utils/sortFavorites';
|
||||
import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems';
|
||||
import { useGetObjectRecordIdentifierByNameSingular } from '@/object-metadata/hooks/useGetObjectRecordIdentifierByNameSingular';
|
||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
@ -13,6 +14,7 @@ import { usePrefetchedFavoritesData } from './usePrefetchedFavoritesData';
|
||||
|
||||
export const useWorkspaceFavorites = () => {
|
||||
const { workspaceFavorites } = usePrefetchedFavoritesData();
|
||||
|
||||
const { records: views } = usePrefetchedData<View>(PrefetchKey.AllViews);
|
||||
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||
const { objectMetadataItem: favoriteObjectMetadataItem } =
|
||||
@ -52,5 +54,29 @@ export const useWorkspaceFavorites = () => {
|
||||
],
|
||||
);
|
||||
|
||||
return { sortedWorkspaceFavorites };
|
||||
const workspaceFavoriteIds = new Set(
|
||||
sortedWorkspaceFavorites.map((favorite) => favorite.recordId),
|
||||
);
|
||||
|
||||
const favoriteViewObjectMetadataIds = new Set(
|
||||
views.reduce<string[]>((acc, view) => {
|
||||
if (workspaceFavoriteIds.has(view.id)) {
|
||||
acc.push(view.objectMetadataId);
|
||||
}
|
||||
return acc;
|
||||
}, []),
|
||||
);
|
||||
|
||||
const { activeObjectMetadataItems } = useFilteredObjectMetadataItems();
|
||||
|
||||
const activeObjectMetadataItemsInWorkspaceFavorites =
|
||||
activeObjectMetadataItems.filter((item) =>
|
||||
favoriteViewObjectMetadataIds.has(item.id),
|
||||
);
|
||||
|
||||
return {
|
||||
workspaceFavorites: sortedWorkspaceFavorites,
|
||||
workspaceFavoritesObjectMetadataItems:
|
||||
activeObjectMetadataItemsInWorkspaceFavorites,
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user