UNPKG

burdy

Version:

Open Source Headless Platform

47 lines (46 loc) 2.23 kB
import React from 'react'; import { ModelObject } from '@admin/helpers/misc'; declare const useButtonHover: (debounce?: number) => (boolean | { onMouseEnter: () => void; onMouseLeave: () => void; })[]; declare const useStorageState: <T>(name: string, defaultValue: T) => [T, React.Dispatch<T>]; interface BaseModel { id: number | string; } declare type ModelMiddleware<T> = (models: T[]) => T[]; export declare type SetModelMiddleware<T> = (middleware: ModelMiddleware<T>[]) => void; declare type CompareFunction<T> = (a: T, b: T) => number; declare const useModelState: <T extends BaseModel>(defaultValue?: T[], sorter?: CompareFunction<T>) => { arrayState: T[]; objectState: ModelObject<T>; setObjectState: (models: ModelObject<T>) => void; setArrayState: (models: T[]) => void; create: (models: T[]) => void; delete: (ids: number[]) => void; update: (models: T[]) => void; middleware: ModelMiddleware<T>[]; setMiddleware: React.Dispatch<React.SetStateAction<ModelMiddleware<T>[]>>; removeSort: () => void; setSort: React.Dispatch<React.SetStateAction<CompareFunction<T>>>; }; declare class ModelStateWrapper<T extends BaseModel> { useModelState: (defaultValue?: T[]) => { arrayState: T[]; objectState: ModelObject<T>; setObjectState: (models: ModelObject<T>) => void; setArrayState: (models: T[]) => void; create: (models: T[]) => void; delete: (ids: number[]) => void; update: (models: T[]) => void; middleware: ModelMiddleware<T>[]; setMiddleware: React.Dispatch<React.SetStateAction<ModelMiddleware<T>[]>>; removeSort: () => void; setSort: React.Dispatch<React.SetStateAction<CompareFunction<T>>>; }; } declare type ModelState<T extends BaseModel> = ReturnType<ModelStateWrapper<T>['useModelState']>; declare type RefChangeCallback<T> = (current: T, previous?: T) => (() => void) | void; declare const useRefChange: <T = unknown>(callback: RefChangeCallback<T>, initial?: T) => import("@fluentui/react-hooks").RefCallback<T>; declare const useAllowedPaths: () => any[]; export { useRefChange, useButtonHover, useStorageState, useModelState, useAllowedPaths, ModelState, };