UNPKG

@codegouvfr/react-dsfr

Version:

French State Design System React integration library

50 lines (49 loc) 2.05 kB
import type { FinalityConsent } from "./types"; export type ConsentCallback<Finality extends string> = (params: { finalityConsent: FinalityConsent<Finality>; finalityConsent_prev: FinalityConsent<Finality> | undefined; }) => Promise<void> | void; export type ProcessConsentChanges<Finality extends string> = (params: { type: "grantAll" | "denyAll" | "no changes but trigger consent callbacks"; } | { type: "atomic change"; finality: Finality; isConsentGiven: boolean; } | { type: "new finalityConsent explicitly provided"; finalityConsent: FinalityConsent<Finality>; }) => Promise<void>; /** Pure, exported for testing */ export declare function finalityConsentToChanges<Finality extends string>(params: { finalityConsent: FinalityConsent<Finality>; }): { finality: Finality; isConsentGiven: boolean; }[]; export declare function createProcessConsentChanges<Finality extends string>(params: { finalities: Finality[]; getFinalityConsent: () => FinalityConsent<Finality> | undefined; setFinalityConsent: (params: { finalityConsent: FinalityConsent<Finality>; prAllConsentCallbacksRun: Promise<void>; }) => void; consentCallback: ConsentCallback<Finality> | undefined; }): { processConsentChanges: ProcessConsentChanges<Finality>; useConsentCallback: (params: { consentCallback: ConsentCallback<Finality> | undefined; }) => void; }; /** Pure, exported for testing */ export declare function createFullDenyFinalityConsent<Finality extends string>(finalities: Finality[]): FinalityConsent<Finality>; /** Pure, exported for testing */ export declare function updateFinalityConsent<Finality extends string>(params: { finalityConsent: FinalityConsent<Finality>; finality: Finality; isConsentGiven: boolean; }): FinalityConsent<Finality>; /** Pure, exported for testing */ export declare function readFinalityConsent<Finality extends string>(params: { finalityConsent: FinalityConsent<Finality>; finality: Finality; }): boolean | undefined;