react-children-pattern
Version:
React utilities for checking allowed components and retrieving specific children
26 lines (25 loc) • 1.48 kB
TypeScript
import type { ReactElement, ReactNode, FunctionComponent, JSXElementConstructor, FunctionComponentElement } from "react";
/**
* Returns the childs matching the provided function component
* @param componentFunction function component
* @param children react node
* @returns array
* @example useChildrenOfType(Child, children)
*/
export declare function useChildrenOfType(componentFunction: FunctionComponentElement | ReactElement | JSXElementConstructor<unknown> | FunctionComponent<unknown> | FunctionComponent<Element>, children?: ReactNode): any;
/**
* Returns the first child matching the provided function component
* @param componentFunction function component
* @param children react node
* @returns node
* @example useChildOfType(Child, children)
*/
export declare function useChildOfType(componentFunction: FunctionComponentElement | ReactElement | JSXElementConstructor<unknown> | FunctionComponent<unknown> | FunctionComponent<Element>, children?: ReactNode): any;
/**
* Throws an error if the children don't match the provided function components
* @param componentFunctions function components
* @param children react node
* @returns the first child
* @example useCheckChildrenTypes([Child, OtherChild], children)
*/
export declare function useCheckChildrenTypes(componentFunctions: Array<FunctionComponentElement | ReactElement | JSXElementConstructor<unknown> | FunctionComponent<unknown> | FunctionComponent<Element>>, children?: ReactNode): void;