@codegouvfr/react-dsfr
Version:
French State Design System React integration library
36 lines • 1.29 kB
JavaScript
import { isBrowser } from "./tools/isBrowser";
import { assert } from "tsafe/assert";
import { startClientSideIsDarkLogic } from "./useIsDark/client";
import { Deferred } from "./tools/Deferred";
let isStarted = false;
export async function start(params) {
const { defaultColorScheme, verbose, nextParams, doCheckNonce, trustedTypesPolicyName } = params;
assert(isBrowser);
if (isStarted) {
return;
}
isStarted = true;
const registerEffectAction = nextParams === undefined ? action => action() : nextParams.registerEffectAction;
startClientSideIsDarkLogic({
"colorSchemeExplicitlyProvidedAsParameter": defaultColorScheme,
"doPersistDarkModePreferenceWithCookie": nextParams === undefined ? false : nextParams.doPersistDarkModePreferenceWithCookie,
registerEffectAction,
doCheckNonce,
trustedTypesPolicyName
});
// @ts-expect-error
window.dsfr = {
verbose,
"mode": "react"
};
// @ts-expect-error
await import("./dsfr/dsfr.module");
dDsfrLoaded.resolve();
registerEffectAction(() => {
// @ts-expect-error
window.dsfr.start();
});
}
const dDsfrLoaded = new Deferred();
export const prDsfrLoaded = dDsfrLoaded.pr;
//# sourceMappingURL=start.js.map