Refactor client config (#529)

* Refactor client config

* Fix server tests

* Fix lint
This commit is contained in:
Charles Bochet
2023-07-07 11:10:42 -07:00
committed by GitHub
parent 11d18cc269
commit 26b033abc9
38 changed files with 386 additions and 180 deletions

View File

@ -0,0 +1,34 @@
import { useEffect } from 'react';
import { useRecoilState } from 'recoil';
import { useFetchClientConfig } from '@/auth/hooks/useFetchClientConfig';
import { authProvidersState } from '@/client-config/states/authProvidersState';
import { isDebugModeState } from '@/client-config/states/isDebugModeState';
import { isDemoModeState } from '@/client-config/states/isDemoModeState';
import { telemetryState } from '@/client-config/states/telemetryState';
export const ClientConfigProvider: React.FC<React.PropsWithChildren> = ({
children,
}) => {
const [, setAuthProviders] = useRecoilState(authProvidersState);
const [, setDebugMode] = useRecoilState(isDebugModeState);
const [, setDemoMode] = useRecoilState(isDemoModeState);
const [, setTelemetry] = useRecoilState(telemetryState);
const clientConfig = useFetchClientConfig();
useEffect(() => {
if (clientConfig) {
setAuthProviders({
google: clientConfig.authProviders.google,
password: clientConfig.authProviders.password,
magicLink: false,
});
setDebugMode(clientConfig.debugMode);
setDemoMode(clientConfig.demoMode);
setTelemetry(clientConfig.telemetry);
}
}, [clientConfig, setAuthProviders, setDebugMode, setDemoMode, setTelemetry]);
return <>{children}</>;
};

View File

@ -1,21 +0,0 @@
import { useEffect } from 'react';
import { useRecoilState } from 'recoil';
import { useFetchClientConfig } from '@/auth/hooks/useFetchClientConfig';
import { displayGoogleLogin } from '@/auth/states/displayGoogleLogin';
import { prefillLoginWithSeed } from '@/auth/states/prefillLoginWithSeed';
export const ClientConfigProvider: React.FC<React.PropsWithChildren> = ({
children,
}) => {
const [, setDisplayGoogleLogin] = useRecoilState(displayGoogleLogin);
const [, setPrefillLoginWithSeed] = useRecoilState(prefillLoginWithSeed);
const clientConfig = useFetchClientConfig();
useEffect(() => {
setDisplayGoogleLogin(clientConfig?.display_google_login ?? true);
setPrefillLoginWithSeed(clientConfig?.prefill_login_with_seed ?? true);
}, [setDisplayGoogleLogin, setPrefillLoginWithSeed, clientConfig]);
return <>{children}</>;
};