UNPKG

@animech-public/chonky

Version:

A File Browser component for React

62 lines (58 loc) 1.74 kB
import { ChonkyActions } from '../action-definitions/index'; import { ChonkyIconPlaceholder } from '../components/internal/ChonkyIconPlaceholder'; import { FileBrowserProps } from '../types/file-browser.types'; export type ChonkyConfig = Pick< FileBrowserProps, | 'fileActions' | 'onFileAction' | 'onSearchInput' | 'onCancelSearch' | 'searchPredicate' | 'sortCollator' | 'doubleClickDelay' | 'disableSelection' | 'disableSimpleDeselection' | 'disableDefaultFileActions' | 'hideToolbarInfo' | 'forceEnableOpenParent' | 'disableDragAndDrop' | 'disableDragAndDropProvider' | 'defaultSortActionId' | 'defaultFileViewActionId' | 'clearSelectionOnOutsideClick' | 'iconComponent' | 'darkMode' | 'i18n' | 'renamingSanitizer' | 'disableRenaming' >; export const defaultConfig: ChonkyConfig = { fileActions: null, onFileAction: null, onSearchInput: null, onCancelSearch: null, searchPredicate: null, doubleClickDelay: 300, disableSelection: false, disableSimpleDeselection: false, disableDefaultFileActions: false, forceEnableOpenParent: false, hideToolbarInfo: false, disableDragAndDrop: false, disableDragAndDropProvider: false, defaultSortActionId: ChonkyActions.SortFilesByName.id, defaultFileViewActionId: ChonkyActions.EnableGridView.id, clearSelectionOnOutsideClick: true, iconComponent: ChonkyIconPlaceholder, darkMode: false, i18n: {}, renamingSanitizer: null, disableRenaming: false, }; export const setChonkyDefaults = (config: Partial<ChonkyConfig>) => { for (const key of Object.keys(defaultConfig)) { if (key in config) { (defaultConfig as any)[key as keyof ChonkyConfig] = config[key as keyof ChonkyConfig] as any; } } };