Prometheus Entity Management API
    Preparing search index...

    Everything a CRUD screen needs: composed list view, selection, detail subscription, relation joins, edit/create buffers, and mutating actions. applyOptimistic is the escape hatch to mirror the buffer into patches for instant sliders/toggles without committing save yet.

    interface CRUDState<TEntity extends object> {
        applyOptimistic: () => void;
        cancelCreate: () => void;
        cancelEdit: () => void;
        create: () => Promise<TEntity | null>;
        createBuffer: Partial<TEntity>;
        createError: string | null;
        deleteEntity: (id?: string) => Promise<void>;
        deleteError: string | null;
        detail: TEntity | null;
        detailError: string | null;
        detailIsLoading: boolean;
        dirty: DirtyFields<TEntity>;
        editBuffer: Partial<TEntity>;
        isCreating: boolean;
        isDeleting: boolean;
        isEditing: boolean;
        isSaving: boolean;
        list: UseEntityViewResult<TEntity>;
        mode: CRUDMode;
        openDetail: (id: string) => void;
        relations: Record<string, unknown>;
        resetBuffer: () => void;
        resetCreateBuffer: () => void;
        save: () => Promise<TEntity | null>;
        saveError: string | null;
        select: (id: string | null) => void;
        selectedId: string | null;
        setCreateField: (field: EntityFieldPath<TEntity>, value: unknown) => void;
        setCreateFields: (fields: Partial<TEntity>) => void;
        setField: (field: EntityFieldPath<TEntity>, value: unknown) => void;
        setFields: (fields: Partial<TEntity>) => void;
        setMode: (mode: CRUDMode) => void;
        startCreate: () => void;
        startEdit: (id?: string) => void;
    }

    Type Parameters

    • TEntity extends object
    Index
    applyOptimistic: () => void
    cancelCreate: () => void
    cancelEdit: () => void
    create: () => Promise<TEntity | null>
    createBuffer: Partial<TEntity>
    createError: string | null
    deleteEntity: (id?: string) => Promise<void>
    deleteError: string | null
    detail: TEntity | null
    detailError: string | null
    detailIsLoading: boolean
    editBuffer: Partial<TEntity>
    isCreating: boolean
    isDeleting: boolean
    isEditing: boolean
    isSaving: boolean
    mode: CRUDMode
    openDetail: (id: string) => void
    relations: Record<string, unknown>
    resetBuffer: () => void
    resetCreateBuffer: () => void
    save: () => Promise<TEntity | null>
    saveError: string | null
    select: (id: string | null) => void
    selectedId: string | null
    setCreateField: (field: EntityFieldPath<TEntity>, value: unknown) => void
    setCreateFields: (fields: Partial<TEntity>) => void
    setField: (field: EntityFieldPath<TEntity>, value: unknown) => void
    setFields: (fields: Partial<TEntity>) => void
    setMode: (mode: CRUDMode) => void
    startCreate: () => void
    startEdit: (id?: string) => void