set-state-compare
Version:
setState for React that compares with the current state and only sets the state if changed.
97 lines • 3.24 kB
TypeScript
export type ShapeLifecycleHooks = {
componentDidUpdate?: (prevProps: Record<string, any>, prevState: Record<string, any>) => void;
componentDidMount?: () => void;
componentWillUnmount?: () => void;
props: {
children: [any];
};
setup?: () => void;
};
/**
* @param {typeof ShapeComponent} ShapeClass
* @returns {function(Record<string, any>): import("react").ReactNode} React functional component that renders the ShapeClass
*/
export function shapeComponent(ShapeClass: typeof ShapeComponent): (arg0: Record<string, any>) => any;
/**
* @typedef {object} ShapeLifecycleHooks
* @property {(prevProps: Record<string, any>, prevState: Record<string, any>) => void} [componentDidUpdate]
* @property {() => void} [componentDidMount]
* @property {() => void} [componentWillUnmount]
* @property {{children: [import("react").ReactNode]}} props
* @property {() => void} [setup]
*/
export class ShapeComponent {
/** @type {Record<string, any> | undefined} */
static defaultProps: Record<string, any> | undefined;
/** @type {Record<string, import("prop-types").Validator>} */
static propTypes: Record<string, any>;
/** @type {Record<string, {dependencies?: any[], value: any}> | undefined} */
static __staticCaches: Record<string, {
dependencies?: any[];
value: any;
}> | undefined;
/**
* @param {Record<string, any>} props
*/
constructor(props: Record<string, any>);
__caches: {};
__mounting: boolean;
__mounted: boolean;
props: Record<string, any>;
setStates: {};
state: {};
__firstRenderCompleted: boolean;
tt: any;
p: any;
s: any;
/**
* @template T
* @param {string} name
* @param {T | (() => T)} value
* @param {any[]} [dependencies]
* @returns {T}
*/
cache<T>(name: string, value: T | (() => T), dependencies?: any[]): T;
/**
* @template T
* @param {string} name
* @param {T | (() => T)} value
* @param {any[]} [dependencies]
* @returns {T}
*/
cacheStatic<T>(name: string, value: T | (() => T), dependencies?: any[]): T;
/**
* @param {Record<string, any>} variables
* @returns {void}
*/
setInstance(variables: Record<string, any>): void;
/**
* @param {Record<string, any>} statesList
* @param {function() : void} [callback]
* @returns {void}
*/
setState(statesList: Record<string, any>, callback?: () => void): void;
/**
* @param {Record<string, any>} statesList
* @returns {Promise<void>}
*/
setStateAsync(statesList: Record<string, any>): Promise<void>;
/**
* @param {string} stylingName
* @param {Record<string, any>} style
* @returns {Record<string, any>}
*/
stylingFor(stylingName: string, style?: Record<string, any>): Record<string, any>;
/**
* @param {string} stateName
* @param {any} defaultValue
* @returns {any}
*/
useState(stateName: string, defaultValue: any): any;
/**
* @param {Array<string>|Record<string, any>} statesList
* @returns {void}
*/
useStates(statesList: Array<string> | Record<string, any>): void;
}
//# sourceMappingURL=shape-component.d.ts.map