Fixed issue #13901 https://github.com/user-attachments/assets/4aa7d0f3-88b8-474f-85e5-b2989ed8afdd --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@@ -1,6 +1,30 @@
|
||||
import { aiModelsState } from '@/client-config/states/aiModelsState';
|
||||
import { apiConfigState } from '@/client-config/states/apiConfigState';
|
||||
import { appVersionState } from '@/client-config/states/appVersionState';
|
||||
import { authProvidersState } from '@/client-config/states/authProvidersState';
|
||||
import { billingState } from '@/client-config/states/billingState';
|
||||
import { calendarBookingPageIdState } from '@/client-config/states/calendarBookingPageIdState';
|
||||
import { canManageFeatureFlagsState } from '@/client-config/states/canManageFeatureFlagsState';
|
||||
import { captchaState } from '@/client-config/states/captchaState';
|
||||
import { chromeExtensionIdState } from '@/client-config/states/chromeExtensionIdState';
|
||||
import { isAnalyticsEnabledState } from '@/client-config/states/isAnalyticsEnabledState';
|
||||
import { isAttachmentPreviewEnabledState } from '@/client-config/states/isAttachmentPreviewEnabledState';
|
||||
import { isConfigVariablesInDbEnabledState } from '@/client-config/states/isConfigVariablesInDbEnabledState';
|
||||
import { isDeveloperDefaultSignInPrefilledState } from '@/client-config/states/isDeveloperDefaultSignInPrefilledState';
|
||||
import { isEmailVerificationRequiredState } from '@/client-config/states/isEmailVerificationRequiredState';
|
||||
import { isGoogleCalendarEnabledState } from '@/client-config/states/isGoogleCalendarEnabledState';
|
||||
import { isGoogleMessagingEnabledState } from '@/client-config/states/isGoogleMessagingEnabledState';
|
||||
import { isImapSmtpCaldavEnabledState } from '@/client-config/states/isImapSmtpCaldavEnabledState';
|
||||
import { isMicrosoftCalendarEnabledState } from '@/client-config/states/isMicrosoftCalendarEnabledState';
|
||||
import { isMicrosoftMessagingEnabledState } from '@/client-config/states/isMicrosoftMessagingEnabledState';
|
||||
import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState';
|
||||
import { labPublicFeatureFlagsState } from '@/client-config/states/labPublicFeatureFlagsState';
|
||||
import { sentryConfigState } from '@/client-config/states/sentryConfigState';
|
||||
import { supportChatState } from '@/client-config/states/supportChatState';
|
||||
import { type ClientConfig } from '@/client-config/types/ClientConfig';
|
||||
import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState';
|
||||
import { useCallback } from 'react';
|
||||
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
||||
import { useRecoilState, useSetRecoilState } from 'recoil';
|
||||
import { clientConfigApiStatusState } from '../states/clientConfigApiStatusState';
|
||||
import { getClientConfig } from '../utils/getClientConfig';
|
||||
|
||||
@@ -13,11 +37,77 @@ type UseClientConfigResult = {
|
||||
};
|
||||
|
||||
export const useClientConfig = (): UseClientConfigResult => {
|
||||
const clientConfigApiStatus = useRecoilValue(clientConfigApiStatusState);
|
||||
const setClientConfigApiStatus = useSetRecoilState(
|
||||
const setIsAnalyticsEnabled = useSetRecoilState(isAnalyticsEnabledState);
|
||||
const setDomainConfiguration = useSetRecoilState(domainConfigurationState);
|
||||
const setAuthProviders = useSetRecoilState(authProvidersState);
|
||||
const setAiModels = useSetRecoilState(aiModelsState);
|
||||
|
||||
const setIsDeveloperDefaultSignInPrefilled = useSetRecoilState(
|
||||
isDeveloperDefaultSignInPrefilledState,
|
||||
);
|
||||
const setIsMultiWorkspaceEnabled = useSetRecoilState(
|
||||
isMultiWorkspaceEnabledState,
|
||||
);
|
||||
const setIsEmailVerificationRequired = useSetRecoilState(
|
||||
isEmailVerificationRequiredState,
|
||||
);
|
||||
|
||||
const setBilling = useSetRecoilState(billingState);
|
||||
const setSupportChat = useSetRecoilState(supportChatState);
|
||||
|
||||
const setSentryConfig = useSetRecoilState(sentryConfigState);
|
||||
const [clientConfigApiStatus, setClientConfigApiStatus] = useRecoilState(
|
||||
clientConfigApiStatusState,
|
||||
);
|
||||
|
||||
const setCaptcha = useSetRecoilState(captchaState);
|
||||
|
||||
const setChromeExtensionId = useSetRecoilState(chromeExtensionIdState);
|
||||
|
||||
const setApiConfig = useSetRecoilState(apiConfigState);
|
||||
|
||||
const setCanManageFeatureFlags = useSetRecoilState(
|
||||
canManageFeatureFlagsState,
|
||||
);
|
||||
|
||||
const setLabPublicFeatureFlags = useSetRecoilState(
|
||||
labPublicFeatureFlagsState,
|
||||
);
|
||||
|
||||
const setMicrosoftMessagingEnabled = useSetRecoilState(
|
||||
isMicrosoftMessagingEnabledState,
|
||||
);
|
||||
|
||||
const setMicrosoftCalendarEnabled = useSetRecoilState(
|
||||
isMicrosoftCalendarEnabledState,
|
||||
);
|
||||
|
||||
const setGoogleMessagingEnabled = useSetRecoilState(
|
||||
isGoogleMessagingEnabledState,
|
||||
);
|
||||
|
||||
const setGoogleCalendarEnabled = useSetRecoilState(
|
||||
isGoogleCalendarEnabledState,
|
||||
);
|
||||
|
||||
const setIsAttachmentPreviewEnabled = useSetRecoilState(
|
||||
isAttachmentPreviewEnabledState,
|
||||
);
|
||||
|
||||
const setIsConfigVariablesInDbEnabled = useSetRecoilState(
|
||||
isConfigVariablesInDbEnabledState,
|
||||
);
|
||||
|
||||
const setCalendarBookingPageId = useSetRecoilState(
|
||||
calendarBookingPageIdState,
|
||||
);
|
||||
|
||||
const setIsImapSmtpCaldavEnabled = useSetRecoilState(
|
||||
isImapSmtpCaldavEnabledState,
|
||||
);
|
||||
|
||||
const setAppVersion = useSetRecoilState(appVersionState);
|
||||
|
||||
const fetchClientConfig = useCallback(async () => {
|
||||
setClientConfigApiStatus((prev) => ({
|
||||
...prev,
|
||||
@@ -34,6 +124,61 @@ export const useClientConfig = (): UseClientConfigResult => {
|
||||
error: undefined,
|
||||
data: { clientConfig },
|
||||
}));
|
||||
setClientConfigApiStatus((currentStatus) => ({
|
||||
...currentStatus,
|
||||
isErrored: false,
|
||||
error: undefined,
|
||||
}));
|
||||
setAppVersion(clientConfig.appVersion);
|
||||
setAuthProviders({
|
||||
google: clientConfig.authProviders.google,
|
||||
microsoft: clientConfig.authProviders.microsoft,
|
||||
password: clientConfig.authProviders.password,
|
||||
magicLink: false,
|
||||
sso: clientConfig.authProviders.sso,
|
||||
});
|
||||
setAiModels(clientConfig.aiModels || []);
|
||||
setIsAnalyticsEnabled(clientConfig.analyticsEnabled);
|
||||
setIsDeveloperDefaultSignInPrefilled(clientConfig.signInPrefilled);
|
||||
setIsMultiWorkspaceEnabled(clientConfig.isMultiWorkspaceEnabled);
|
||||
setIsEmailVerificationRequired(clientConfig.isEmailVerificationRequired);
|
||||
setBilling(clientConfig.billing);
|
||||
setSupportChat(clientConfig.support);
|
||||
|
||||
setSentryConfig({
|
||||
dsn: clientConfig?.sentry?.dsn,
|
||||
release: clientConfig?.sentry?.release,
|
||||
environment: clientConfig?.sentry?.environment,
|
||||
});
|
||||
|
||||
setCaptcha({
|
||||
provider: clientConfig?.captcha?.provider,
|
||||
siteKey: clientConfig?.captcha?.siteKey,
|
||||
});
|
||||
|
||||
setChromeExtensionId(clientConfig?.chromeExtensionId);
|
||||
setApiConfig(clientConfig?.api);
|
||||
setDomainConfiguration({
|
||||
defaultSubdomain: clientConfig?.defaultSubdomain,
|
||||
frontDomain: clientConfig?.frontDomain,
|
||||
});
|
||||
setCanManageFeatureFlags(clientConfig?.canManageFeatureFlags);
|
||||
setLabPublicFeatureFlags(clientConfig?.publicFeatureFlags);
|
||||
setMicrosoftMessagingEnabled(clientConfig?.isMicrosoftMessagingEnabled);
|
||||
setMicrosoftCalendarEnabled(clientConfig?.isMicrosoftCalendarEnabled);
|
||||
setGoogleMessagingEnabled(clientConfig?.isGoogleMessagingEnabled);
|
||||
setGoogleCalendarEnabled(clientConfig?.isGoogleCalendarEnabled);
|
||||
setIsAttachmentPreviewEnabled(clientConfig?.isAttachmentPreviewEnabled);
|
||||
setIsConfigVariablesInDbEnabled(
|
||||
clientConfig?.isConfigVariablesInDbEnabled,
|
||||
);
|
||||
setClientConfigApiStatus((currentStatus) => ({
|
||||
...currentStatus,
|
||||
isSaved: true,
|
||||
}));
|
||||
|
||||
setCalendarBookingPageId(clientConfig?.calendarBookingPageId ?? null);
|
||||
setIsImapSmtpCaldavEnabled(clientConfig?.isImapSmtpCaldavEnabled);
|
||||
} catch (err) {
|
||||
const error =
|
||||
err instanceof Error ? err : new Error('Failed to fetch client config');
|
||||
@@ -45,7 +190,33 @@ export const useClientConfig = (): UseClientConfigResult => {
|
||||
error,
|
||||
}));
|
||||
}
|
||||
}, [setClientConfigApiStatus]);
|
||||
}, [
|
||||
setAiModels,
|
||||
setApiConfig,
|
||||
setAppVersion,
|
||||
setAuthProviders,
|
||||
setBilling,
|
||||
setCalendarBookingPageId,
|
||||
setCanManageFeatureFlags,
|
||||
setCaptcha,
|
||||
setChromeExtensionId,
|
||||
setClientConfigApiStatus,
|
||||
setDomainConfiguration,
|
||||
setGoogleCalendarEnabled,
|
||||
setGoogleMessagingEnabled,
|
||||
setIsAnalyticsEnabled,
|
||||
setIsAttachmentPreviewEnabled,
|
||||
setIsConfigVariablesInDbEnabled,
|
||||
setIsDeveloperDefaultSignInPrefilled,
|
||||
setIsEmailVerificationRequired,
|
||||
setIsImapSmtpCaldavEnabled,
|
||||
setIsMultiWorkspaceEnabled,
|
||||
setLabPublicFeatureFlags,
|
||||
setMicrosoftCalendarEnabled,
|
||||
setMicrosoftMessagingEnabled,
|
||||
setSentryConfig,
|
||||
setSupportChat,
|
||||
]);
|
||||
|
||||
return {
|
||||
data: clientConfigApiStatus.data,
|
||||
|
||||
Reference in New Issue
Block a user