favorite folders followup (#8570)
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>
This commit is contained in:
@ -9,6 +9,7 @@ import { useEffect } from 'react';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
// TODO: Remove this component once we merge it with PrefetchRunQueriesEffect (once we remove feature flag)
|
||||
export const PrefetchFavoriteFoldersRunQueriesEffect = () => {
|
||||
const currentUser = useRecoilValue(currentUserState);
|
||||
|
||||
@ -19,7 +20,6 @@ export const PrefetchFavoriteFoldersRunQueriesEffect = () => {
|
||||
|
||||
const { objectMetadataItems } = useObjectMetadataItems();
|
||||
|
||||
// Only include favorite folders operation
|
||||
const operationSignatures = Object.values(PREFETCH_CONFIG)
|
||||
.filter(({ objectNameSingular }) => objectNameSingular === 'favoriteFolder')
|
||||
.map(({ objectNameSingular, operationSignatureFactory }) => {
|
||||
|
||||
@ -9,14 +9,10 @@ import { PREFETCH_CONFIG } from '@/prefetch/constants/PrefetchConfig';
|
||||
import { usePrefetchRunQuery } from '@/prefetch/hooks/internal/usePrefetchRunQuery';
|
||||
import { PrefetchKey } from '@/prefetch/types/PrefetchKey';
|
||||
import { View } from '@/views/types/View';
|
||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
export const PrefetchRunQueriesEffect = () => {
|
||||
const currentUser = useRecoilValue(currentUserState);
|
||||
const isFavoriteFolderEnabled = useIsFeatureEnabled(
|
||||
'IS_FAVORITE_FOLDER_ENABLED',
|
||||
);
|
||||
|
||||
const { upsertRecordsInCache: upsertViewsInCache } =
|
||||
usePrefetchRunQuery<View>({
|
||||
@ -33,7 +29,7 @@ export const PrefetchRunQueriesEffect = () => {
|
||||
const operationSignatures = Object.values(PREFETCH_CONFIG)
|
||||
.filter(
|
||||
({ objectNameSingular }) =>
|
||||
// Exclude favorite folders as they're handled separately
|
||||
// TODO: Remove this filter once we merge PrefetchFavortiteFoldersRunQueriesEffect with this component
|
||||
objectNameSingular !== 'favoriteFolder',
|
||||
)
|
||||
.map(({ objectNameSingular, operationSignatureFactory }) => {
|
||||
@ -57,12 +53,7 @@ export const PrefetchRunQueriesEffect = () => {
|
||||
if (isDefined(result.favorites)) {
|
||||
upsertFavoritesInCache(result.favorites as Favorite[]);
|
||||
}
|
||||
}, [
|
||||
result,
|
||||
upsertViewsInCache,
|
||||
upsertFavoritesInCache,
|
||||
isFavoriteFolderEnabled,
|
||||
]);
|
||||
}, [result, upsertViewsInCache, upsertFavoritesInCache]);
|
||||
|
||||
return <></>;
|
||||
};
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
import { prefetchIsLoadedFamilyState } from '@/prefetch/states/prefetchIsLoadedFamilyState';
|
||||
import { PrefetchKey } from '@/prefetch/types/PrefetchKey';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
export const useIsFavoriteFoldersPrefetchLoading = () => {
|
||||
const areFavoritesFolderPrefetched = useRecoilValue(
|
||||
prefetchIsLoadedFamilyState(PrefetchKey.AllFavoritesFolders),
|
||||
);
|
||||
|
||||
return !areFavoritesFolderPrefetched;
|
||||
};
|
||||
@ -2,13 +2,14 @@ import { prefetchIsLoadedFamilyState } from '@/prefetch/states/prefetchIsLoadedF
|
||||
import { PrefetchKey } from '@/prefetch/types/PrefetchKey';
|
||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
import { useIsFavoriteFoldersPrefetchLoading } from './useIsFavoriteFoldersPrefetchLoading';
|
||||
|
||||
export const useIsPrefetchLoading = () => {
|
||||
const isFavoriteFolderEnabled = useIsFeatureEnabled(
|
||||
'IS_FAVORITE_FOLDER_ENABLED',
|
||||
);
|
||||
const isFavoriteFoldersLoading = useIsFavoriteFoldersPrefetchLoading();
|
||||
const isFavoriteFoldersPrefetched = useRecoilValue(
|
||||
prefetchIsLoadedFamilyState(PrefetchKey.AllFavoritesFolders),
|
||||
);
|
||||
|
||||
const areViewsPrefetched = useRecoilValue(
|
||||
prefetchIsLoadedFamilyState(PrefetchKey.AllViews),
|
||||
@ -20,6 +21,6 @@ export const useIsPrefetchLoading = () => {
|
||||
return (
|
||||
!areViewsPrefetched ||
|
||||
!areFavoritesPrefetched ||
|
||||
(isFavoriteFolderEnabled && isFavoriteFoldersLoading)
|
||||
(isFavoriteFolderEnabled && !isFavoriteFoldersPrefetched)
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user