@animech-public/chonky
Version:
A File Browser component for React
55 lines (54 loc) • 1.34 kB
TypeScript
import { Nullable } from 'tsdef';
import { FileData } from './file.types';
export interface MouseClickFilePayload {
file: FileData;
fileDisplayIndex: number;
altKey: boolean;
ctrlKey: boolean;
shiftKey: boolean;
clickType: 'single' | 'double';
targetElement: EventTarget;
}
export interface KeyboardClickFilePayload {
file: FileData;
fileDisplayIndex: number;
enterKey: boolean;
altKey: boolean;
ctrlKey: boolean;
shiftKey: boolean;
}
export interface StartDragNDropPayload {
sourceInstanceId: string;
source: Nullable<FileData>;
draggedFile: FileData;
selectedFiles: FileData[];
}
export type EndDragNDropPayload = StartDragNDropPayload & {
destination: FileData;
copy: boolean;
};
export type MoveFilesPayload = EndDragNDropPayload & {
files: FileData[];
};
export type RenameFilePayload = {
file: FileData;
targetName: string;
};
export type StartRenamingFilePayload = {
fileId: string;
};
export type EndRenamingFilePayload = {
targetName?: string;
};
export type ChangeSelectionPayload = {
selection: Set<string>;
};
export interface OpenFilesPayload {
targetFile?: FileData;
files: FileData[];
}
export interface OpenFileContextMenuPayload {
clientX: number;
clientY: number;
triggerFileId: Nullable<string>;
}