3959 create a activationstatus in coreworkspace and use it in front to redirect properly (#3989)

* Add computed field to workspace entity

* Add activationStatus to front requests

* Update Selector

* Use activation status

* Stop using selector for mock values

* Remove isCurrentWorkspaceActiveSelector

* Use activation status

* Fix typo

* Use activation status

* Create hook for sign in up navigate

* Update hook to handle profile creation

* Use varaible

* Use more readable boolean function
This commit is contained in:
martmull
2024-02-16 16:00:39 +01:00
committed by GitHub
parent 03a1d3aa75
commit 0ee512a983
26 changed files with 165 additions and 105 deletions

View File

@ -1,6 +1,7 @@
import React from 'react';
import { useRecoilValue } from 'recoil';
import { isCurrentWorkspaceActiveSelector } from '@/auth/states/selectors/isCurrentWorkspaceActiveSelector';
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState.ts';
import { ObjectMetadataItemsLoadEffect } from '@/object-metadata/components/ObjectMetadataItemsLoadEffect';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { RelationPickerScope } from '@/object-record/relation-picker/scopes/RelationPickerScope';
@ -9,14 +10,17 @@ export const ObjectMetadataItemsProvider = ({
children,
}: React.PropsWithChildren) => {
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
const isCurrentWorkspaceActive = useRecoilValue(
isCurrentWorkspaceActiveSelector,
);
const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState);
const shouldDisplayChildren = () => {
if (objectMetadataItems.length) {
return true;
}
return !currentWorkspaceMember;
};
return (
<>
<ObjectMetadataItemsLoadEffect />
{(!isCurrentWorkspaceActive || !!objectMetadataItems.length) && (
{shouldDisplayChildren() && (
<RelationPickerScope relationPickerScopeId="relation-picker">
{children}
</RelationPickerScope>

View File

@ -1,7 +1,7 @@
import { gql } from '@apollo/client';
import { useRecoilValue } from 'recoil';
import { isCurrentWorkspaceActiveSelector } from '@/auth/states/selectors/isCurrentWorkspaceActiveSelector';
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState.ts';
import { ObjectMetadataItemNotFoundError } from '@/object-metadata/errors/ObjectMetadataNotFoundError';
import { useGetObjectOrderByField } from '@/object-metadata/hooks/useGetObjectOrderByField';
import { useMapToObjectRecordIdentifier } from '@/object-metadata/hooks/useMapToObjectRecordIdentifier';
@ -40,9 +40,8 @@ export const useObjectMetadataItem = (
{ objectNameSingular }: ObjectMetadataItemIdentifier,
depth?: number,
) => {
const isCurrentWorkspaceActive = useRecoilValue(
isCurrentWorkspaceActiveSelector,
);
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const mockObjectMetadataItems = getObjectMetadataItemsMock();
let objectMetadataItem = useRecoilValue(
@ -54,7 +53,7 @@ export const useObjectMetadataItem = (
let objectMetadataItems = useRecoilValue(objectMetadataItemsState);
if (!isCurrentWorkspaceActive) {
if (currentWorkspace?.activationStatus !== 'active') {
objectMetadataItem =
mockObjectMetadataItems.find(
(objectMetadataItem) =>

View File

@ -1,6 +1,6 @@
import { useRecoilValue } from 'recoil';
import { isCurrentWorkspaceActiveSelector } from '@/auth/states/selectors/isCurrentWorkspaceActiveSelector';
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState.ts';
import { ObjectMetadataItemNotFoundError } from '@/object-metadata/errors/ObjectMetadataNotFoundError';
import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
@ -12,9 +12,8 @@ import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentif
export const useObjectMetadataItemOnly = ({
objectNameSingular,
}: ObjectMetadataItemIdentifier) => {
const isCurrentWorkspaceActive = useRecoilValue(
isCurrentWorkspaceActiveSelector,
);
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const mockObjectMetadataItems = getObjectMetadataItemsMock();
let objectMetadataItem = useRecoilValue(
@ -26,7 +25,7 @@ export const useObjectMetadataItemOnly = ({
let objectMetadataItems = useRecoilValue(objectMetadataItemsState);
if (!isCurrentWorkspaceActive) {
if (currentWorkspace?.activationStatus !== 'active') {
objectMetadataItem =
mockObjectMetadataItems.find(
(objectMetadataItem) =>

View File

@ -1,6 +1,6 @@
import { useRecoilValue } from 'recoil';
import { isCurrentWorkspaceActiveSelector } from '@/auth/states/selectors/isCurrentWorkspaceActiveSelector';
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState.ts';
import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector';
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
import { isDefined } from '~/utils/isDefined';
@ -10,9 +10,7 @@ export const useObjectNamePluralFromSingular = ({
}: {
objectNameSingular: string;
}) => {
const isCurrentWorkspaceActive = useRecoilValue(
isCurrentWorkspaceActiveSelector,
);
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const mockObjectMetadataItems = getObjectMetadataItemsMock();
let objectMetadataItem = useRecoilValue(
@ -22,7 +20,7 @@ export const useObjectNamePluralFromSingular = ({
}),
);
if (!isCurrentWorkspaceActive) {
if (currentWorkspace?.activationStatus !== 'active') {
objectMetadataItem =
mockObjectMetadataItems.find(
(objectMetadataItem) =>

View File

@ -1,6 +1,6 @@
import { useRecoilValue } from 'recoil';
import { isCurrentWorkspaceActiveSelector } from '@/auth/states/selectors/isCurrentWorkspaceActiveSelector';
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState.ts';
import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector';
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
import { isDefined } from '~/utils/isDefined';
@ -10,9 +10,8 @@ export const useObjectNameSingularFromPlural = ({
}: {
objectNamePlural: string;
}) => {
const isCurrentWorkspaceActive = useRecoilValue(
isCurrentWorkspaceActiveSelector,
);
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const mockObjectMetadataItems = getObjectMetadataItemsMock();
let objectMetadataItem = useRecoilValue(
@ -22,7 +21,7 @@ export const useObjectNameSingularFromPlural = ({
}),
);
if (!isCurrentWorkspaceActive) {
if (currentWorkspace?.activationStatus !== 'active') {
objectMetadataItem =
mockObjectMetadataItems.find(
(objectMetadataItem) =>