mt-flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
47 lines (46 loc) • 2.53 kB
TypeScript
import { ComTree } from "../../validations/render";
import React from "react";
import { StateCreator } from 'zustand';
export interface RenderInitState {
parentNodeId?: number;
rootNode: ComTree;
some: string;
}
export interface NodeSlice<T = any> extends RenderInitState {
addChild: (viewType: string, nodeId?: number) => Promise<void>;
setSomeValue: (someValue: any) => void;
printState: () => void;
}
type RenderSliceType = ReturnType<typeof createRenderlice>;
export declare const createRenderlice: StateCreator<NodeSlice, [
], [
], NodeSlice>;
export type ResAppStoreTypeCombin = NodeSlice;
export type RenderStoreType = ReturnType<typeof createNodeStore>;
export declare const createNodeStore: (initProps?: Partial<RenderInitState>) => import("zustand").UseBoundStore<Omit<Omit<import("zustand").StoreApi<NodeSlice<any>>, "persist"> & {
persist: {
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<NodeSlice<any>, ResAppStoreTypeCombin>>) => void;
clearStorage: () => void;
rehydrate: () => void | Promise<void>;
hasHydrated: () => boolean;
onHydrate: (fn: (state: NodeSlice<any>) => void) => () => void;
onFinishHydration: (fn: (state: NodeSlice<any>) => void) => () => void;
getOptions: () => Partial<import("zustand/middleware").PersistOptions<NodeSlice<any>, ResAppStoreTypeCombin>>;
};
}, "subscribe"> & {
subscribe: {
(listener: (selectedState: NodeSlice<any>, previousSelectedState: NodeSlice<any>) => void): () => void;
<U>(selector: (state: NodeSlice<any>) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
equalityFn?: ((a: U, b: U) => boolean) | undefined;
fireImmediately?: boolean | undefined;
} | undefined): () => void;
};
}>;
type RenderProviderProps = React.PropsWithChildren<Partial<RenderInitState>>;
export declare function NodeProvider({ children, ...props }: RenderProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useNodeStore<T>(): ReturnType<typeof createNodeStore>;
export declare function useNodeStore<T>(selector: (state: RenderSliceType) => T): T;
export declare function GlobalNodeProvider({ children, ...props }: RenderProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useNodeGlobalStore<T>(): ReturnType<typeof createNodeStore>;
export declare function useNodeGlobalStore<T>(selector: (state: RenderSliceType) => T): T;
export {};