dnd-multi-backend
Version:
Multi Backend system compatible with DnD Core / React DnD
26 lines (25 loc) • 723 B
TypeScript
import type { Backend } from 'dnd-core';
export type Transition = {
event: string;
check: (e: Event) => boolean;
};
export type BackendEntry = {
id: string;
instance: Backend;
preview: boolean;
transition?: Transition;
skipDispatchOnTransition: boolean;
};
export interface MultiBackendSwitcher extends Backend {
backendsList(): BackendEntry[];
previewsList(): PreviewList;
previewEnabled(): boolean;
}
export interface PreviewListener {
backendChanged(backend: MultiBackendSwitcher): void;
}
export interface PreviewList {
register(listener: PreviewListener): void;
unregister(listener: PreviewListener): void;
backendChanged(backend: MultiBackendSwitcher): void;
}