Migrate to a monorepo structure (#2909)
This commit is contained in:
@ -0,0 +1,47 @@
|
||||
import { useEffect } from 'react';
|
||||
import { useSetRecoilState } from 'recoil';
|
||||
|
||||
import { authProvidersState } from '@/client-config/states/authProvidersState';
|
||||
import { isDebugModeState } from '@/client-config/states/isDebugModeState';
|
||||
import { isSignInPrefilledState } from '@/client-config/states/isSignInPrefilledState';
|
||||
import { supportChatState } from '@/client-config/states/supportChatState';
|
||||
import { telemetryState } from '@/client-config/states/telemetryState';
|
||||
import { useGetClientConfigQuery } from '~/generated/graphql';
|
||||
|
||||
export const ClientConfigProvider: React.FC<React.PropsWithChildren> = ({
|
||||
children,
|
||||
}) => {
|
||||
const setAuthProviders = useSetRecoilState(authProvidersState);
|
||||
const setIsDebugMode = useSetRecoilState(isDebugModeState);
|
||||
|
||||
const setIsSignInPrefilled = useSetRecoilState(isSignInPrefilledState);
|
||||
|
||||
const setTelemetry = useSetRecoilState(telemetryState);
|
||||
const setSupportChat = useSetRecoilState(supportChatState);
|
||||
|
||||
const { data, loading } = useGetClientConfigQuery();
|
||||
|
||||
useEffect(() => {
|
||||
if (data?.clientConfig) {
|
||||
setAuthProviders({
|
||||
google: data?.clientConfig.authProviders.google,
|
||||
password: data?.clientConfig.authProviders.password,
|
||||
magicLink: false,
|
||||
});
|
||||
setIsDebugMode(data?.clientConfig.debugMode);
|
||||
setIsSignInPrefilled(data?.clientConfig.signInPrefilled);
|
||||
|
||||
setTelemetry(data?.clientConfig.telemetry);
|
||||
setSupportChat(data?.clientConfig.support);
|
||||
}
|
||||
}, [
|
||||
data,
|
||||
setAuthProviders,
|
||||
setIsDebugMode,
|
||||
setIsSignInPrefilled,
|
||||
setTelemetry,
|
||||
setSupportChat,
|
||||
]);
|
||||
|
||||
return loading ? <></> : <>{children}</>;
|
||||
};
|
||||
@ -0,0 +1,22 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const GET_CLIENT_CONFIG = gql`
|
||||
query GetClientConfig {
|
||||
clientConfig {
|
||||
authProviders {
|
||||
google
|
||||
password
|
||||
}
|
||||
signInPrefilled
|
||||
debugMode
|
||||
telemetry {
|
||||
enabled
|
||||
anonymizationEnabled
|
||||
}
|
||||
support {
|
||||
supportDriver
|
||||
supportFrontChatId
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
@ -0,0 +1,8 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { AuthProviders } from '~/generated/graphql';
|
||||
|
||||
export const authProvidersState = atom<AuthProviders>({
|
||||
key: 'authProvidersState',
|
||||
default: { google: false, magicLink: false, password: true },
|
||||
});
|
||||
@ -0,0 +1,6 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
export const isDebugModeState = atom<boolean>({
|
||||
key: 'isDebugModeState',
|
||||
default: false,
|
||||
});
|
||||
@ -0,0 +1,6 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
export const isSignInPrefilledState = atom<boolean>({
|
||||
key: 'isSignInPrefilledState',
|
||||
default: false,
|
||||
});
|
||||
@ -0,0 +1,11 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { Support } from '~/generated/graphql';
|
||||
|
||||
export const supportChatState = atom<Support>({
|
||||
key: 'supportChatState',
|
||||
default: {
|
||||
supportDriver: 'none',
|
||||
supportFrontChatId: null,
|
||||
},
|
||||
});
|
||||
@ -0,0 +1,8 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { Telemetry } from '~/generated/graphql';
|
||||
|
||||
export const telemetryState = atom<Telemetry>({
|
||||
key: 'telemetryState',
|
||||
default: { enabled: true, anonymizationEnabled: true },
|
||||
});
|
||||
Reference in New Issue
Block a user