@vaadin/hilla-react-crud
Version:
Hilla CRUD utils for React
21 lines (20 loc) • 1.4 kB
TypeScript
import type { AbstractModel, DetachedModelConstructor, Value } from '@vaadin/hilla-lit-form';
import { type JSX } from 'react';
import { type AutoFormProps } from './autoform.js';
import { type AutoGridProps } from './autogrid.js';
import type { CrudService } from './crud.js';
import { type ComponentStyleProps } from './util.js';
export type AutoCrudFormHeaderRenderer<TItem> = (editedItem: TItem | null, disabled: boolean) => JSX.Element | null | undefined;
export type AutoCrudFormProps<TModel extends AbstractModel> = Omit<Partial<AutoFormProps<TModel>>, 'disabled' | 'item' | 'model' | 'onDeleteSuccess' | 'onSubmitSuccess' | 'service'> & Readonly<{
headerRenderer?: AutoCrudFormHeaderRenderer<Value<TModel>>;
}>;
export type AutoCrudGridProps<TItem> = Omit<Partial<AutoGridProps<TItem>>, 'model' | 'onActiveItemChanged' | 'selectedItems' | 'service'>;
export type AutoCrudProps<TModel extends AbstractModel = AbstractModel> = ComponentStyleProps & Readonly<{
service: CrudService<Value<TModel>>;
model: DetachedModelConstructor<TModel>;
itemIdProperty?: string;
noNewButton?: boolean;
formProps?: AutoCrudFormProps<TModel>;
gridProps?: AutoCrudGridProps<Value<TModel>>;
}>;
export declare function AutoCrud<TModel extends AbstractModel>({ service, model, itemIdProperty, noNewButton, formProps, gridProps, style, id, className, }: AutoCrudProps<TModel>): JSX.Element;