@jjordy/swr-devtools
Version:
Devtools for SWR
73 lines (72 loc) • 2.06 kB
TypeScript
import React from "react";
export declare type ToolbarPositions = "right" | "left" | "bottom" | "";
export interface SWRDevtoolsProps {
children: React.ReactNode;
/** Custom open component to be rendered inside the open button */
CustomOpenComponent?: React.ReactNode;
/** This will print relavent position information to the console */
debug?: boolean;
/** Default the devtools to being open on render */
defaultOpen?: boolean;
/** The default position you would like the devtools to appear in. */
position?: ToolbarPositions;
/** Customize the position of the open button / component */
openBtnPosition?: "left" | "right";
}
export interface UsePanelStateProps {
debug?: boolean;
toolbarPosition: ToolbarPositions;
previousToolbarPosition: ToolbarPositions;
show: boolean;
}
export interface PanelProps {
toolbarPosition: ToolbarPositions;
previousToolbarPosition: ToolbarPositions;
show: boolean;
children: ({ theme, width, resizing, }: {
theme: string;
width: number;
resizing: boolean;
}) => React.ReactNode;
setToolbarPosition: (position: ToolbarPositions) => void;
toggleShow: () => void;
debug?: boolean;
}
export interface KeysProps {
keys: string[];
selectedKey: string;
onSelect: (key: string) => void;
onClear: (key: string) => void;
onRevalidate: (key: string) => void;
theme: string;
children?: React.ReactNode;
panelWidth?: number;
}
export interface DataProps {
JsonViewer: any;
toolbarPosition: ToolbarPositions;
data: any;
resizing?: boolean;
theme: string;
cacheKey: string;
}
export interface Themes {
[key: string]: Theme;
}
export interface Theme {
container: {
[key: string]: any;
};
header: {
[key: string]: any;
};
keys: {
[key: string]: any;
};
data: {
[key: string]: any;
};
bottom: {
[key: string]: any;
};
}