next-loaders
Version:
Provider server loader for NextJS
38 lines (37 loc) • 1.42 kB
TypeScript
import React, { Dispatch, FC, PropsWithChildren } from "react";
import { LoaderServerResponse } from "./types";
export type LoaderState = Record<string, LoaderServerResponse<any>>;
export interface LoaderValue {
state: LoaderState;
setLoader(result: LoaderServerResponse<any>, name: string): void;
reset(name: string): void;
resetAll(): void;
}
export declare const initialState: LoaderState;
export declare const LoaderContext: React.Context<LoaderValue>;
export declare enum LoaderActionType {
SET_LOADER = "SET_LOADER",
RESET = "RESET",
RESET_ALL = "RESET_ALL"
}
export interface LoaderSetLoaderAction {
type: LoaderActionType.SET_LOADER;
payload: LoaderServerResponse<any>;
meta: string;
}
export interface LoaderResetAction {
type: LoaderActionType.RESET;
meta: string;
}
export interface LoaderResetAllAction {
type: LoaderActionType.RESET_ALL;
}
export type LoaderAction = LoaderSetLoaderAction | LoaderResetAction | LoaderResetAllAction;
export declare const loaderReducer: (state: LoaderState | undefined, action: LoaderAction) => LoaderState;
export declare const createLoaderSlice: (dispatch: Dispatch<LoaderAction>) => {
setLoader: (result: LoaderServerResponse<any>, name: string) => void;
reset: (name: string) => void;
resetAll: () => void;
};
declare const LoaderProvider: FC<PropsWithChildren<object>>;
export default LoaderProvider;