@ozmos/viper-react
Version:
React plugin for Viper
362 lines • 14.2 kB
TypeScript
import { type QueryClient, useMutation } from "@tanstack/react-query";
type BaseProps = Record<string, unknown>;
type BaseActions = Record<string, {
args: unknown;
result: unknown;
}>;
type BaseParams = Record<string, string>;
interface BasePageType {
props: BaseProps;
actions: BaseActions;
params: BaseParams;
}
interface BasePage extends BasePageType {
hashes: Record<string, string>;
title?: string | null;
}
interface PageInit {
formatTitle?: (title: string) => string;
queryClient: QueryClient;
}
export declare class Page {
formatTitle: (title: string) => string;
props: Record<string, unknown>;
actions: {};
hashes: Record<string, string>;
queryClient: QueryClient | null;
updateFromPageJson(json: BasePage): void;
setPageTitle(title: string): void;
}
export declare function ViperProvider({ children, formatTitle, }: {
children: React.ReactNode;
} & PageInit): import("react").JSX.Element;
export declare function reactRouterLoader({ request }: {
request: Request;
}): Promise<{}>;
export declare function usePage<P extends BasePageType>(): {
setPageTitle: (title: string) => void;
params: P["params"];
useQuery<K extends keyof P["props"]>(key: K): {
data: (0 extends 1 & P["props"][K] ? true : false) extends true ? unknown : P["props"][K];
error: Error;
isError: true;
isPending: false;
isLoading: false;
isLoadingError: false;
isRefetchError: true;
isSuccess: false;
isPlaceholderData: false;
status: "error";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isFetching: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").NoInfer<P["props"][K]>, Error>>;
fetchStatus: import("@tanstack/react-query").FetchStatus;
promise: Promise<import("@tanstack/react-query").NoInfer<P["props"][K]>>;
} | {
data: (0 extends 1 & P["props"][K] ? true : false) extends true ? unknown : P["props"][K];
error: null;
isError: false;
isPending: false;
isLoading: false;
isLoadingError: false;
isRefetchError: false;
isSuccess: true;
isPlaceholderData: false;
status: "success";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isFetching: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").NoInfer<P["props"][K]>, Error>>;
fetchStatus: import("@tanstack/react-query").FetchStatus;
promise: Promise<import("@tanstack/react-query").NoInfer<P["props"][K]>>;
} | {
data: (0 extends 1 & P["props"][K] ? true : false) extends true ? unknown : P["props"][K];
error: Error;
isError: true;
isPending: false;
isLoading: false;
isLoadingError: true;
isRefetchError: false;
isSuccess: false;
isPlaceholderData: false;
status: "error";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isFetching: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").NoInfer<P["props"][K]>, Error>>;
fetchStatus: import("@tanstack/react-query").FetchStatus;
promise: Promise<import("@tanstack/react-query").NoInfer<P["props"][K]>>;
} | {
data: (0 extends 1 & P["props"][K] ? true : false) extends true ? unknown : P["props"][K];
error: null;
isError: false;
isPending: true;
isLoading: true;
isLoadingError: false;
isRefetchError: false;
isSuccess: false;
isPlaceholderData: false;
status: "pending";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isFetching: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").NoInfer<P["props"][K]>, Error>>;
fetchStatus: import("@tanstack/react-query").FetchStatus;
promise: Promise<import("@tanstack/react-query").NoInfer<P["props"][K]>>;
} | {
data: (0 extends 1 & P["props"][K] ? true : false) extends true ? unknown : P["props"][K];
error: null;
isError: false;
isPending: true;
isLoadingError: false;
isRefetchError: false;
isSuccess: false;
isPlaceholderData: false;
status: "pending";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isFetching: boolean;
isLoading: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").NoInfer<P["props"][K]>, Error>>;
fetchStatus: import("@tanstack/react-query").FetchStatus;
promise: Promise<import("@tanstack/react-query").NoInfer<P["props"][K]>>;
} | {
data: (0 extends 1 & P["props"][K] ? true : false) extends true ? unknown : P["props"][K];
isError: false;
error: null;
isPending: false;
isLoading: false;
isLoadingError: false;
isRefetchError: false;
isSuccess: true;
isPlaceholderData: true;
status: "success";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isFetching: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").NoInfer<P["props"][K]>, Error>>;
fetchStatus: import("@tanstack/react-query").FetchStatus;
promise: Promise<import("@tanstack/react-query").NoInfer<P["props"][K]>>;
};
useMutation<K extends keyof P["actions"]>(key: K, options?: Parameters<typeof useMutation<P["actions"][K]["result"], unknown, P["actions"][K]["args"]>>[0]): import("@tanstack/react-query").UseMutationResult<P["actions"][K]["result"], unknown, P["actions"][K]["args"], unknown>;
useForm<K extends keyof P["actions"]>(key: K, options: Parameters<typeof useMutation<P["actions"][K]["result"], unknown, P["actions"][K]["args"]>>[0] & {
state: P["actions"][K]["args"];
}): {
mutate(override?: P["actions"][K]["args"]): void;
mutateAsync(override?: P["actions"][K]["args"]): Promise<P["actions"][K]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: P["actions"][K]["args"];
setState: import("react").Dispatch<import("react").SetStateAction<P["actions"][K]["args"]>>;
data: undefined;
variables: undefined;
error: null;
isError: false;
isIdle: true;
isPending: false;
isSuccess: false;
status: "idle";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
} | {
mutate(override?: P["actions"][K]["args"]): void;
mutateAsync(override?: P["actions"][K]["args"]): Promise<P["actions"][K]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: P["actions"][K]["args"];
setState: import("react").Dispatch<import("react").SetStateAction<P["actions"][K]["args"]>>;
data: undefined;
variables: P["actions"][K]["args"];
error: null;
isError: false;
isIdle: false;
isPending: true;
isSuccess: false;
status: "pending";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
} | {
mutate(override?: P["actions"][K]["args"]): void;
mutateAsync(override?: P["actions"][K]["args"]): Promise<P["actions"][K]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: P["actions"][K]["args"];
setState: import("react").Dispatch<import("react").SetStateAction<P["actions"][K]["args"]>>;
data: undefined;
error: unknown;
variables: P["actions"][K]["args"];
isError: true;
isIdle: false;
isPending: false;
isSuccess: false;
status: "error";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
} | {
mutate(override?: P["actions"][K]["args"]): void;
mutateAsync(override?: P["actions"][K]["args"]): Promise<P["actions"][K]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: P["actions"][K]["args"];
setState: import("react").Dispatch<import("react").SetStateAction<P["actions"][K]["args"]>>;
data: P["actions"][K]["result"];
error: null;
variables: P["actions"][K]["args"];
isError: false;
isIdle: false;
isPending: false;
isSuccess: true;
status: "success";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
};
useFormData(key: keyof P["actions"], options: Parameters<typeof useMutation<P["actions"][keyof P["actions"]]["result"], unknown, P["actions"][keyof P["actions"]]["args"]>>[0] & {
state: P["actions"][keyof P["actions"]]["args"];
files: string[];
}): {
mutate(override?: P["actions"][keyof P["actions"]]["args"]): void;
mutateAsync(override?: P["actions"][keyof P["actions"]]["args"]): Promise<P["actions"][keyof P["actions"]]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: any;
data: undefined;
variables: undefined;
error: null;
isError: false;
isIdle: true;
isPending: false;
isSuccess: false;
status: "idle";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
} | {
mutate(override?: P["actions"][keyof P["actions"]]["args"]): void;
mutateAsync(override?: P["actions"][keyof P["actions"]]["args"]): Promise<P["actions"][keyof P["actions"]]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: any;
data: undefined;
variables: P["actions"][keyof P["actions"]]["args"];
error: null;
isError: false;
isIdle: false;
isPending: true;
isSuccess: false;
status: "pending";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
} | {
mutate(override?: P["actions"][keyof P["actions"]]["args"]): void;
mutateAsync(override?: P["actions"][keyof P["actions"]]["args"]): Promise<P["actions"][keyof P["actions"]]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: any;
data: undefined;
error: unknown;
variables: P["actions"][keyof P["actions"]]["args"];
isError: true;
isIdle: false;
isPending: false;
isSuccess: false;
status: "error";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
} | {
mutate(override?: P["actions"][keyof P["actions"]]["args"]): void;
mutateAsync(override?: P["actions"][keyof P["actions"]]["args"]): Promise<P["actions"][keyof P["actions"]]["result"]>;
reset: () => void;
errors: Record<string, string>;
state: any;
data: P["actions"][keyof P["actions"]]["result"];
error: null;
variables: P["actions"][keyof P["actions"]]["args"];
isError: false;
isIdle: false;
isPending: false;
isSuccess: true;
status: "success";
context: unknown;
failureCount: number;
failureReason: unknown;
isPaused: boolean;
submittedAt: number;
};
};
export {};
//# sourceMappingURL=page.d.ts.map