fix: login redirection to active objects (#15366)
Fixes - https://github.com/twentyhq/twenty/issues/15364 - Removed `activeNonSystemObjectMetadataItems` from the hook as it was not necessary. Hook use `alphaSortedActiveNonSystemObjectMetadataItems` now. - Correctly check for read permissions. --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
+3
-5
@@ -2,8 +2,8 @@ import React from 'react';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
import { PreComputedChipGeneratorsProvider } from '@/object-metadata/components/PreComputedChipGeneratorsProvider';
|
||||
import { isAppWaitingForFreshObjectMetadataState } from '@/object-metadata/states/isAppWaitingForFreshObjectMetadataState';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { shouldAppBeLoadingState } from '@/object-metadata/states/shouldAppBeLoadingState';
|
||||
import { UserOrMetadataLoader } from '~/loading/components/UserOrMetadataLoader';
|
||||
|
||||
export const ObjectMetadataItemsProvider = ({
|
||||
@@ -11,12 +11,10 @@ export const ObjectMetadataItemsProvider = ({
|
||||
}: React.PropsWithChildren) => {
|
||||
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||
|
||||
const isAppWaitingForFreshObjectMetadata = useRecoilValue(
|
||||
isAppWaitingForFreshObjectMetadataState,
|
||||
);
|
||||
const shouldAppBeLoading = useRecoilValue(shouldAppBeLoadingState);
|
||||
|
||||
const shouldDisplayChildren =
|
||||
!isAppWaitingForFreshObjectMetadata && objectMetadataItems.length > 0;
|
||||
!shouldAppBeLoading && objectMetadataItems.length > 0;
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
+9
-5
@@ -1,5 +1,6 @@
|
||||
import { isAppWaitingForFreshObjectMetadataState } from '@/object-metadata/states/isAppWaitingForFreshObjectMetadataState';
|
||||
import { isAppEffectRedirectEnabledState } from '@/app/states/isAppEffectRedirectEnabledState';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { shouldAppBeLoadingState } from '@/object-metadata/states/shouldAppBeLoadingState';
|
||||
import { useRecoilCallback } from 'recoil';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/utils/generatedMockObjectMetadataItems';
|
||||
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
||||
@@ -17,12 +18,15 @@ export const useLoadMockedObjectMetadataItems = () => {
|
||||
set(objectMetadataItemsState, generatedMockObjectMetadataItems);
|
||||
}
|
||||
|
||||
if (snapshot.getLoadable(shouldAppBeLoadingState).getValue() === true) {
|
||||
set(shouldAppBeLoadingState, false);
|
||||
}
|
||||
|
||||
if (
|
||||
snapshot
|
||||
.getLoadable(isAppWaitingForFreshObjectMetadataState)
|
||||
.getValue() === true
|
||||
snapshot.getLoadable(isAppEffectRedirectEnabledState).getValue() ===
|
||||
false
|
||||
) {
|
||||
set(isAppWaitingForFreshObjectMetadataState, false);
|
||||
set(isAppEffectRedirectEnabledState, true);
|
||||
}
|
||||
},
|
||||
[],
|
||||
|
||||
+13
-2
@@ -1,7 +1,8 @@
|
||||
import { isAppEffectRedirectEnabledState } from '@/app/states/isAppEffectRedirectEnabledState';
|
||||
import { currentUserWorkspaceState } from '@/auth/states/currentUserWorkspaceState';
|
||||
import { FIND_MANY_OBJECT_METADATA_ITEMS } from '@/object-metadata/graphql/queries';
|
||||
import { isAppWaitingForFreshObjectMetadataState } from '@/object-metadata/states/isAppWaitingForFreshObjectMetadataState';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { shouldAppBeLoadingState } from '@/object-metadata/states/shouldAppBeLoadingState';
|
||||
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
import { enrichObjectMetadataItemsWithPermissions } from '@/object-metadata/utils/enrichObjectMetadataItemsWithPermissions';
|
||||
import { mapPaginatedObjectMetadataItemsToObjectMetadataItems } from '@/object-metadata/utils/mapPaginatedObjectMetadataItemsToObjectMetadataItems';
|
||||
@@ -75,7 +76,17 @@ export const useRefreshObjectMetadataItems = (
|
||||
newObjectMetadataItems.length > 0
|
||||
) {
|
||||
set(objectMetadataItemsState, newObjectMetadataItems);
|
||||
set(isAppWaitingForFreshObjectMetadataState, false);
|
||||
}
|
||||
|
||||
if (snapshot.getLoadable(shouldAppBeLoadingState).getValue() === true) {
|
||||
set(shouldAppBeLoadingState, false);
|
||||
}
|
||||
|
||||
if (
|
||||
snapshot.getLoadable(isAppEffectRedirectEnabledState).getValue() ===
|
||||
false
|
||||
) {
|
||||
set(isAppEffectRedirectEnabledState, true);
|
||||
}
|
||||
|
||||
return newObjectMetadataItems;
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
import { createState } from 'twenty-ui/utilities';
|
||||
export const isAppWaitingForFreshObjectMetadataState = createState<boolean>({
|
||||
key: 'isAppWaitingForFreshObjectMetadataState',
|
||||
defaultValue: false,
|
||||
});
|
||||
@@ -0,0 +1,5 @@
|
||||
import { createState } from 'twenty-ui/utilities';
|
||||
export const shouldAppBeLoadingState = createState<boolean>({
|
||||
key: 'shouldAppBeLoadingState',
|
||||
defaultValue: false,
|
||||
});
|
||||
Reference in New Issue
Block a user