@wordpress/interactivity
Version:
Package that provides a standard and simple way to handle the frontend interactivity of Gutenberg blocks.
87 lines (86 loc) • 2.02 kB
JavaScript
// packages/interactivity/src/index.ts
import { h, cloneElement, render } from "preact";
import { batch, effect } from "@preact/signals";
import registerDirectives, { routerRegions } from "./directives.mjs";
import {
initialVdom,
hydrateRegions,
getRegionRootFragment
} from "./hydration.mjs";
import { toVdom } from "./vdom.mjs";
import { directive } from "./hooks.mjs";
import { getNamespace } from "./namespaces.mjs";
import { parseServerData, populateServerData } from "./store.mjs";
import { proxifyState } from "./proxies/index.mjs";
import { deepReadOnly, navigationSignal, onDOMReady, warn } from "./utils.mjs";
import {
store,
getConfig,
getServerState
} from "./store.mjs";
import { getContext, getServerContext, getElement } from "./scopes.mjs";
import {
withScope,
useWatch,
useInit,
useEffect,
useLayoutEffect,
useCallback,
useMemo,
splitTask,
withSyncEvent
} from "./utils.mjs";
import { useState, useRef } from "preact/hooks";
if (globalThis.SCRIPT_DEBUG) {
await import("preact/debug");
}
var watch = effect;
var requiredConsent = "I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.";
var privateApis = (lock) => {
if (lock === requiredConsent) {
return {
getRegionRootFragment,
initialVdom,
toVdom,
directive,
getNamespace,
h,
cloneElement,
render,
proxifyState,
parseServerData,
populateServerData,
batch,
routerRegions,
deepReadOnly,
navigationSignal,
warn
};
}
throw new Error("Forbidden access.");
};
populateServerData(parseServerData());
registerDirectives();
onDOMReady(hydrateRegions);
export {
getConfig,
getContext,
getElement,
getServerContext,
getServerState,
privateApis,
splitTask,
store,
useCallback,
useEffect,
useInit,
useLayoutEffect,
useMemo,
useRef,
useState,
useWatch,
watch,
withScope,
withSyncEvent
};
//# sourceMappingURL=index.mjs.map