@animech-public/chonky
Version:
A File Browser component for React
54 lines (43 loc) • 1.32 kB
text/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>;
}