Load views on user load and read in cache (#3552)
* WIP * Poc * Use cached root query + remove proloaded views state * Fix storybook test + fix codegen * Return default schema if token is absent, unauthenticated if token is invalid * Use enum instead of bool --------- Co-authored-by: Thomas Trompette <thomast@twenty.com> Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
27
packages/twenty-front/src/hooks/useDefaultHomePagePath.tsx
Normal file
27
packages/twenty-front/src/hooks/useDefaultHomePagePath.tsx
Normal file
@ -0,0 +1,27 @@
|
||||
import { useCachedRootQuery } from '@/apollo/hooks/useCachedRootQuery';
|
||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||
import { QueryMethodName } from '@/object-metadata/types/QueryMethodName';
|
||||
|
||||
export const useDefaultHomePagePath = () => {
|
||||
const { objectMetadataItem: companyObjectMetadataItem } =
|
||||
useObjectMetadataItem({
|
||||
objectNameSingular: CoreObjectNameSingular.Company,
|
||||
});
|
||||
const { objectMetadataItem: viewObjectMetadataItem } = useObjectMetadataItem({
|
||||
objectNameSingular: CoreObjectNameSingular.View,
|
||||
});
|
||||
const { cachedRootQuery } = useCachedRootQuery({
|
||||
objectMetadataItem: viewObjectMetadataItem,
|
||||
queryMethodName: QueryMethodName.FindMany,
|
||||
});
|
||||
|
||||
const companyViewId = cachedRootQuery?.views?.edges?.find(
|
||||
(view: any) =>
|
||||
view?.node?.objectMetadataId === companyObjectMetadataItem.id,
|
||||
)?.node.id;
|
||||
const defaultHomePagePath =
|
||||
'/objects/companies' + (companyViewId ? `?view=${companyViewId}` : '');
|
||||
|
||||
return { defaultHomePagePath };
|
||||
};
|
||||
Reference in New Issue
Block a user