Options
All
  • Public
  • Public/Protected
  • All
Menu

Module "wordpress-plugins/real-cookie-banner/src/public/ts/components/config/blocker/presetSelector"

Index

Variables

Const BlockerPresetSelector

BlockerPresetSelector: FC<{}> = observer(() => {const { cookieStore, checklistStore } = useStores();const { presetsBlocker, busyPresetsBlocker } = cookieStore;const [preset, setPreset] = useState<false | { identifier: string; version: number; overwriteAttributes?: any }>();const [loadingAttributes, setLoadingAttributes] = useState(false);const { logoUrl: cookieExpertsLogoUrl, openDialog: openCookieExperts } = useCookieExpertsModal();// Allow to force a preset by query argument so the preset selector is disabledconst { force, cookieCreationPrompt, attributes, navigateAfterCreation = true } = useLocationQuery();const handleLoadAttributes = useCallback(async (selectedIdentifier: string) => {setLoadingAttributes(true);const blocker = cookieStore.presetsBlocker.get(selectedIdentifier);const {data: { identifier, version }} = blocker;setPreset({identifier,version});setLoadingAttributes(false);},[cookieStore]);const handleOnSelect: ComponentProps<typeof PresetSelector>["onSelect"] = useCallback((attributes) => {if (attributes === false) {setPreset(false);} else {handleLoadAttributes(attributes.identifier);}},[handleLoadAttributes]);useEffect(() => {async function fetch() {await cookieStore.fetchPresetsBlocker();if (force) {if (force === "scratch") {setPreset(attributes? { overwriteAttributes: JSON.parse(attributes), identifier: undefined, version: undefined }: false);} else {handleLoadAttributes(force);}}}fetch();checklistStore.toggleChecklistItem("add-blocker", true);}, []);return preset === undefined ? (<ConfigContent>{force ? (<Spin spinning />) : (<Spin spinning={loadingAttributes}><PresetSelectortype="contentBlocker"presets={Array.from(presetsBlocker.values()).map(// eslint-disable-next-line @typescript-eslint/no-unused-vars({ data: { logoFile, ...preset }, fullLogoUrl }) => ({...preset,logoUrl: fullLogoUrl}))}fetchingPresets={busyPresetsBlocker}onSelect={handleOnSelect}quickLinks={[{id: "from-scratch",cover: <PlusOutlined style={{ paddingTop: 25, fontSize: 70 }} />,title: __("Create from scratch"),description: __("an individual content blocker"),onClick: () => handleOnSelect(false)},{id: "scanner",cover: <SearchOutlined style={{ paddingTop: 25, fontSize: 70 }} />,title: __("Scan website"),description: __("and find used service"),onClick: () => (window.location.hash = "#/scanner")},{id: "cookie-experts",cover: (<imgsrc={cookieExpertsLogoUrl}style={{ display: "block", paddingTop: 15, margin: "auto", height: 95 }}/>),title: "Cookie Experts",description: __("help you with the setup"),onClick: openCookieExperts}]}><h1 style={{ margin: "20px 0" }}>{__("...or create it from one of our templates")}</h1></PresetSelector></Spin>)}</ConfigContent>) : (<ConfigContent maxWidth="fixed"><BlockerEditFormcookieCreationPrompt={cookieCreationPrompt === "1"}preset={preset === false ? undefined : { identifier: preset.identifier, version: preset.version }}overwriteAttributes={preset === false ? undefined : preset.overwriteAttributes}navigateAfterCreation={navigateAfterCreation}/></ConfigContent>);})

Generated using TypeDoc