UNPKG

@vaadin/hilla-react-crud

Version:

Hilla CRUD utils for React

21 lines (20 loc) 1.4 kB
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;