+14
-3
@@ -1,11 +1,15 @@
|
||||
import { act, renderHook } from '@testing-library/react';
|
||||
import { RecoilRoot, useSetRecoilState } from 'recoil';
|
||||
import { createElement } from 'react';
|
||||
import { Provider as JotaiProvider } from 'jotai';
|
||||
import { RecoilRoot } from 'recoil';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import {
|
||||
type CurrentWorkspace,
|
||||
currentWorkspaceState,
|
||||
} from '@/auth/states/currentWorkspaceState';
|
||||
import { useSetRecoilStateV2 } from '@/ui/utilities/state/jotai/hooks/useSetRecoilStateV2';
|
||||
import { jotaiStore } from '@/ui/utilities/state/jotai/jotaiStore';
|
||||
import { useSubscriptionStatus } from '@/workspace/hooks/useSubscriptionStatus';
|
||||
import {
|
||||
SubscriptionStatus,
|
||||
@@ -19,11 +23,18 @@ const currentWorkspace = {
|
||||
allowImpersonation: true,
|
||||
} as CurrentWorkspace;
|
||||
|
||||
const Wrapper = ({ children }: { children: React.ReactNode }) =>
|
||||
createElement(
|
||||
JotaiProvider,
|
||||
{ store: jotaiStore },
|
||||
createElement(RecoilRoot, null, children),
|
||||
);
|
||||
|
||||
const renderHooks = () => {
|
||||
const { result } = renderHook(
|
||||
() => {
|
||||
const subscriptionStatus = useSubscriptionStatus();
|
||||
const setCurrentWorkspace = useSetRecoilState(currentWorkspaceState);
|
||||
const setCurrentWorkspace = useSetRecoilStateV2(currentWorkspaceState);
|
||||
|
||||
return {
|
||||
subscriptionStatus,
|
||||
@@ -31,7 +42,7 @@ const renderHooks = () => {
|
||||
};
|
||||
},
|
||||
{
|
||||
wrapper: RecoilRoot,
|
||||
wrapper: Wrapper,
|
||||
},
|
||||
);
|
||||
return { result };
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
|
||||
import { extractFeatureFlagMapFromWorkspace } from '@/workspace/utils/extractFeatureFlagMapFromWorkspace';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
import { type FeatureFlagKey } from '~/generated-metadata/graphql';
|
||||
|
||||
export const useFeatureFlagsMap = (): Record<FeatureFlagKey, boolean> => {
|
||||
const currentWorkspace = useRecoilValue(currentWorkspaceState);
|
||||
const currentWorkspace = useRecoilValueV2(currentWorkspaceState);
|
||||
|
||||
return extractFeatureFlagMapFromWorkspace(currentWorkspace);
|
||||
};
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
|
||||
import { type FeatureFlagKey } from '~/generated-metadata/graphql';
|
||||
|
||||
export const useIsFeatureEnabled = (featureKey: FeatureFlagKey | null) => {
|
||||
const currentWorkspace = useRecoilValue(currentWorkspaceState);
|
||||
const currentWorkspace = useRecoilValueV2(currentWorkspaceState);
|
||||
|
||||
if (!featureKey) {
|
||||
return false;
|
||||
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
|
||||
|
||||
export const useIsSomeMeteredProductCapReached = (): boolean => {
|
||||
const billingSubscriptionItems = useRecoilValue(currentWorkspaceState)
|
||||
const billingSubscriptionItems = useRecoilValueV2(currentWorkspaceState)
|
||||
?.currentBillingSubscription?.billingSubscriptionItems;
|
||||
|
||||
if (!billingSubscriptionItems) {
|
||||
|
||||
+2
-3
@@ -1,11 +1,10 @@
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
|
||||
import { type WorkspaceActivationStatus } from 'twenty-shared/workspace';
|
||||
|
||||
export const useIsWorkspaceActivationStatusEqualsTo = (
|
||||
activationStatus: WorkspaceActivationStatus,
|
||||
): boolean => {
|
||||
const currentWorkspace = useRecoilValue(currentWorkspaceState);
|
||||
const currentWorkspace = useRecoilValueV2(currentWorkspaceState);
|
||||
return currentWorkspace?.activationStatus === activationStatus;
|
||||
};
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
|
||||
import { type SubscriptionStatus } from '~/generated-metadata/graphql';
|
||||
|
||||
export const useSubscriptionStatus = (): SubscriptionStatus | undefined => {
|
||||
const currentWorkspace = useRecoilValue(currentWorkspaceState);
|
||||
const currentWorkspace = useRecoilValueV2(currentWorkspaceState);
|
||||
return currentWorkspace?.currentBillingSubscription?.status;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user