@wordpress/element
Version:
Element React module for WordPress.
111 lines (110 loc) • 2.06 kB
JavaScript
// packages/element/src/react.ts
import {
Activity,
Children,
cloneElement,
Component,
createContext,
createElement,
createRef,
forwardRef,
Fragment,
isValidElement,
memo,
PureComponent,
StrictMode,
use,
useActionState,
useCallback,
useContext,
useDebugValue,
useDeferredValue,
useEffect,
useEffectEvent,
useId,
useMemo,
useImperativeHandle,
useInsertionEffect,
useLayoutEffect,
useOptimistic,
useReducer,
useRef,
useState,
useSyncExternalStore,
useTransition,
startTransition,
lazy,
Suspense
} from "react";
function concatChildren(...childrenArguments) {
return childrenArguments.reduce(
(accumulator, children, i) => {
Children.forEach(children, (child, j) => {
if (isValidElement(child) && typeof child !== "string") {
child = cloneElement(child, {
key: [i, j].join()
});
}
accumulator.push(child);
});
return accumulator;
},
[]
);
}
function switchChildrenNodeName(children, nodeName) {
return children && Children.map(children, (elt, index) => {
if (typeof elt?.valueOf() === "string") {
return createElement(nodeName, { key: index }, elt);
}
if (!isValidElement(elt)) {
return elt;
}
const { children: childrenProp, ...props } = elt.props;
return createElement(
nodeName,
{ key: index, ...props },
childrenProp
);
});
}
export {
Activity,
Children,
Component,
Fragment,
PureComponent,
StrictMode,
Suspense,
cloneElement,
concatChildren,
createContext,
createElement,
createRef,
forwardRef,
isValidElement,
lazy,
memo,
startTransition,
switchChildrenNodeName,
use,
useActionState,
useCallback,
useContext,
useDebugValue,
useDeferredValue,
useEffect,
useEffectEvent,
useId,
useImperativeHandle,
useInsertionEffect,
useLayoutEffect,
useMemo,
useOptimistic,
useReducer,
useRef,
useState,
useSyncExternalStore,
useTransition
};
//# sourceMappingURL=react.mjs.map