burdy
Version:
Open Source Headless Platform
16 lines (15 loc) • 846 B
TypeScript
import React from 'react';
declare function withWrapper<P>(Wrapper: React.FC<Partial<P>>, defaultWrapperProps?: P): <T extends object>(Component: React.FC<T>) => (props: T) => JSX.Element;
declare type ComposedWrappers<CW> = {
[key in keyof CW]: React.FC<CW[key]>;
};
declare type ComposedWrapperProps<T extends {}, CW> = T & {
[key in keyof CW]?: CW[key] & Partial<{
disable?: boolean;
}>;
} & Partial<{
unwrap?: boolean;
}>;
declare function composeWrappers<CW>(wrappers: ComposedWrappers<CW>): <T extends object, R>(Component: React.FC<T>) => React.ForwardRefExoticComponent<React.PropsWithoutRef<ComposedWrapperProps<T, CW>> & React.RefAttributes<R>>;
declare const withGroupsContext: <T extends object>(Component: React.FC<T>) => (props: T) => JSX.Element;
export { withWrapper, composeWrappers, withGroupsContext };