@etsoo/materialui
Version:
TypeScript Material-UI Implementation
62 lines (61 loc) • 1.81 kB
TypeScript
import { DataTypes } from "@etsoo/shared";
import React from "react";
import { CommonPageProps } from "./CommonPage";
import type { OperationMessageHandlerAll } from "../messages/OperationMessageHandler";
import { ViewContainerProps } from "../ViewContainer";
import { StackProps } from "@mui/material/Stack";
/**
* View page action bar
* @param props Props
* @returns Component
*/
export declare function ViewPageActionBar(props: StackProps & {
actionPaddings?: number | Record<string, string | number>;
}): import("react/jsx-runtime").JSX.Element;
/**
* View page props
*/
export interface ViewPageProps<T extends DataTypes.StringRecord> extends Omit<CommonPageProps, "children">, Omit<ViewContainerProps<T>, "data" | "refresh"> {
/**
* Actions
*/
actions?: React.ReactNode | ((data: T, refresh: () => PromiseLike<void>) => React.ReactNode);
/**
* Paddings between actions
*/
actionPaddings?: number | Record<string, string | number>;
/**
* Children
*/
children?: React.ReactNode | ((data: T, refresh: () => PromiseLike<void>) => React.ReactNode);
/**
* Load data
*/
loadData: () => PromiseLike<T | undefined>;
/**
* Pull to refresh data
*/
pullToRefresh?: boolean;
/**
* Support refresh
*/
supportRefresh?: boolean;
/**
* Operation message handler
*/
operationMessageHandler?: OperationMessageHandlerAll | {
id: number;
types: string[];
};
/**
* Title bar
* @param data Data to render
* @returns
*/
titleBar?: (data: T) => React.ReactNode;
}
/**
* View page
* @param props Props
*/
export declare function ViewPage<T extends DataTypes.StringRecord>(props: ViewPageProps<T>): import("react/jsx-runtime").JSX.Element;