dnd-multi-backend
Version:
Multi Backend system compatible with DnD Core / React DnD
30 lines (29 loc) • 1.26 kB
TypeScript
import type { BackendFactory, DragDropManager, Unsubscribe } from 'dnd-core';
import type { BackendEntry, MultiBackendSwitcher, PreviewList, Transition } from './types';
export type MultiBackendContext = unknown;
export type MultiBackendPipelineStep = {
id: string;
backend: BackendFactory;
transition?: Transition;
preview?: boolean;
skipDispatchOnTransition?: boolean;
options?: unknown;
};
export type MultiBackendPipeline = MultiBackendPipelineStep[];
export type MultiBackendOptions = {
backends: MultiBackendPipeline;
};
export declare class MultiBackendImpl implements MultiBackendSwitcher {
#private;
private static isSetUp;
constructor(manager: DragDropManager, context?: MultiBackendContext, options?: MultiBackendOptions);
setup: () => void;
teardown: () => void;
connectDragSource: (sourceId: unknown, node?: unknown, options?: unknown) => Unsubscribe;
connectDragPreview: (sourceId: unknown, node?: unknown, options?: unknown) => Unsubscribe;
connectDropTarget: (sourceId: unknown, node?: unknown, options?: unknown) => Unsubscribe;
profile: () => Record<string, number>;
previewEnabled: () => boolean;
previewsList: () => PreviewList;
backendsList: () => BackendEntry[];
}