@firecms/core
Version:
Awesome Firebase/Firestore-based headless open-source CMS
65 lines (64 loc) • 2.48 kB
TypeScript
import React from "react";
import { DraggableProvided } from "@hello-pangea/dnd";
export type ArrayEntryParams = {
index: number;
internalId: number;
isDragging: boolean;
storedProps?: object;
storeProps: (props: object) => void;
};
export type ArrayEntryBuilder = (params: ArrayEntryParams) => React.ReactNode;
export interface ArrayContainerProps<T> {
droppableId: string;
value: T[];
addLabel: string;
buildEntry: ArrayEntryBuilder;
disabled?: boolean;
size?: "small" | "medium";
onInternalIdAdded?: (id: number) => void;
/**
* @deprecated Use `canAddElements` instead
*/
includeAddButton?: boolean;
canAddElements?: boolean;
sortable?: boolean;
newDefaultEntry: T;
onValueChange: (value: T[]) => void;
className?: string;
min?: number;
max?: number;
}
/**
* @group Form custom fields
*/
export declare function ArrayContainer<T>({ droppableId, addLabel, value, disabled, buildEntry, size, onInternalIdAdded, includeAddButton: deprecatedIncludeAddButton, canAddElements: canAddElementsProp, sortable, newDefaultEntry, onValueChange, className, min, max }: ArrayContainerProps<T>): import("react/jsx-runtime").JSX.Element;
type ArrayContainerItemProps = {
provided: DraggableProvided;
index: number;
internalId: number;
size?: "small" | "medium";
disabled: boolean;
buildEntry: ArrayEntryBuilder;
remove: (index: number) => void;
copy: (index: number) => void;
addInIndex?: (index: number) => void;
canAddElements?: boolean;
sortable: boolean;
isDragging: boolean;
storedProps?: object;
updateItemCustomProps: (internalId: number, props: object) => void;
};
export declare function ArrayContainerItem({ provided, index, internalId, size, disabled, buildEntry, remove, addInIndex, canAddElements, sortable, copy, isDragging, storedProps, updateItemCustomProps }: ArrayContainerItemProps): import("react/jsx-runtime").JSX.Element;
export declare function ArrayItemOptions({ direction, disabled, remove, index, provided, copy, canAddElements, sortable, addInIndex }: {
direction?: "row" | "column";
disabled: boolean;
remove: (index: number) => void;
index: number;
provided: any;
copy: (index: number) => void;
sortable: boolean;
canAddElements?: boolean;
addInIndex?: (index: number) => void;
}): import("react/jsx-runtime").JSX.Element;
export declare function getRandomId(): number;
export {};