Something changed, which affected the Favorite folder picker checkbox styles -- fixed it! Cleaned up code in `CurrentWorkspaceMemberFavoritesFolders` - removed redundant filtering since favorites are already filtered in `usePrefetchedFavoritesData`. Regarding issue #8569 - I am not sure what to do in this case. Since Folders data is gated by a feature flag, we can't use it in `CurrentWorkspaceMemberFavoritesFolders` to ensure the favorite section renders with empty folders. Currently, the section only appears when at least one favorite exists - may be leave this section open at all times or fix this bug after removal of the feature flag? --------- Co-authored-by: Nitin Koche <nitinkoche@Nitins-MacBook-Pro.local> Co-authored-by: Charles Bochet <charles@twenty.com>
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
|
import { useCreateOneRecord } from '@/object-record/hooks/useCreateOneRecord';
|
|
import { usePrefetchedFavoritesData } from './usePrefetchedFavoritesData';
|
|
import { usePrefetchedFavoritesFoldersData } from './usePrefetchedFavoritesFoldersData';
|
|
|
|
export const useCreateFavoriteFolder = () => {
|
|
const { createOneRecord: createFavoriteFolder } = useCreateOneRecord({
|
|
objectNameSingular: CoreObjectNameSingular.FavoriteFolder,
|
|
});
|
|
|
|
const { currentWorkspaceMemberId } = usePrefetchedFavoritesData();
|
|
const { favoriteFolders } = usePrefetchedFavoritesFoldersData();
|
|
|
|
const createNewFavoriteFolder = async (name: string): Promise<void> => {
|
|
if (!name || !currentWorkspaceMemberId) {
|
|
return;
|
|
}
|
|
|
|
const maxPosition = Math.max(
|
|
...favoriteFolders.map((folder) => folder.position),
|
|
0,
|
|
);
|
|
|
|
await createFavoriteFolder({
|
|
workspaceMemberId: currentWorkspaceMemberId,
|
|
name,
|
|
position: maxPosition + 1,
|
|
});
|
|
};
|
|
|
|
return { createNewFavoriteFolder };
|
|
};
|