@deephaven/file-explorer 0.44.2-provenance.4 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"NewItemModal.d.ts","sourceRoot":"","sources":["../src/NewItemModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NewItemModal.d.ts","sourceRoot":"","sources":["../src/NewItemModal.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NewItemModal.js","names":["React","PureComponent","PropTypes","classNames","Modal","ModalBody","ModalFooter","ModalHeader","BasicModal","Button","Pending","PromiseUtils","ValidationError","Log","vsHome","FontAwesomeIcon","FileExplorer","FileUtils","FileExistsError","FileNotFoundError","log","module","NewItemModal","getValidationMessage","err","info","type","handleError","isCanceled","error","constructor","props","createRef","Map","handleModalSubmit","bind","handleModalOpened","handleSelect","handleChange","handleKeyDown","handleValidationError","handleOverwriteCancel","handleOverwriteConfirm","handleExtensionChangeCancel","handleExtensionChangeConfirm","handleBreadcrumbSelect","defaultValue","path","hasPath","getPath","state","isSubmitting","prevExtension","getExtension","showExtensionChangeModal","showOverwriteModal","value","getBaseName","componentDidUpdate","prevProps","prevState","isOpen","prevIsOpen","resetValue","isInitialLoad","updateValidationStatus","componentWillUnmount","pending","cancel","cancelableValidatePromise","cancelableExistingItemPromise","setState","validationError","undefined","getValidationPromise","name","checkExisting","makeCancelable","validateName","storage","existingFile","e","newName","then","catch","focusRenameInput","submitModal","event","target","item","debug","makePath","filename","basename","key","stopPropagation","preventDefault","onCancel","onSubmit","newValue","replaceExtension","input","inputRef","current","selectionEnd","length","lastIndexOf","focus","setSelectionRange","skipExtensionCheck","notifyOnExtensionChange","newExtension","newItemName","directoryPath","renderPathButtons","pathAsList","split","pop","map","index","i","render","placeholder","title","isDirectory","prevExtensionText","fileExtensionToString","newExtensionText","submitBtnLabel","nameInputLabel","bool","string","isRequired","oneOf","func","shape","isOverwrite"],"sources":["../src/NewItemModal.tsx"],"sourcesContent":["import React, { ChangeEvent, KeyboardEvent, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n BasicModal,\n Button,\n} from '@deephaven/components';\nimport {\n CancelablePromise,\n Pending,\n PromiseUtils,\n ValidationError,\n} from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport { vsHome } from '@deephaven/icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport FileExplorer from './FileExplorer';\nimport FileStorage, { FileStorageItem, FileType } from './FileStorage';\nimport FileUtils from './FileUtils';\n\nimport './NewItemModal.scss';\nimport FileExistsError from './FileExistsError';\nimport FileNotFoundError from './FileNotFoundError';\n\nconst log = Log.module('NewItemModal');\n\nexport type NewItemModalProps = typeof NewItemModal.defaultProps & {\n isOpen: boolean;\n title: string;\n defaultValue: string;\n type: FileType;\n onSubmit: (name: string, isOverwrite?: boolean) => void;\n onCancel: () => void;\n placeholder: string;\n storage: FileStorage;\n notifyOnExtensionChange?: boolean;\n};\n\nexport type NewItemModalState = {\n path: string;\n isSubmitting: boolean;\n showExtensionChangeModal: boolean;\n showOverwriteModal: boolean;\n validationError?: ValidationError;\n value: string;\n prevExtension?: string;\n newExtension?: string;\n};\n\nclass NewItemModal extends PureComponent<NewItemModalProps, NewItemModalState> {\n static propTypes = {\n isOpen: PropTypes.bool,\n title: PropTypes.string.isRequired,\n defaultValue: PropTypes.string,\n type: PropTypes.oneOf(['file', 'directory']).isRequired,\n onSubmit: PropTypes.func,\n onCancel: PropTypes.func,\n placeholder: PropTypes.string,\n storage: PropTypes.shape({}).isRequired,\n notifyOnExtensionChange: PropTypes.bool,\n };\n\n static defaultProps = {\n isOpen: false,\n defaultValue: '/',\n notifyOnExtensionChange: false,\n placeholder: '',\n onSubmit: (name: string, isOverwrite?: boolean): void => undefined,\n onCancel: (): void => undefined,\n };\n\n static getValidationMessage(err: Error): string {\n if (err instanceof FileExistsError && err.info.type === 'directory') {\n return 'Error: Cannot overwrite existing directory';\n }\n return `${err}`;\n }\n\n static handleError(err: Error): void {\n if (!PromiseUtils.isCanceled(err)) {\n log.error(err);\n }\n }\n\n constructor(props: NewItemModalProps) {\n super(props);\n this.handleModalSubmit = this.handleModalSubmit.bind(this);\n this.handleModalOpened = this.handleModalOpened.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleValidationError = this.handleValidationError.bind(this);\n this.handleOverwriteCancel = this.handleOverwriteCancel.bind(this);\n this.handleOverwriteConfirm = this.handleOverwriteConfirm.bind(this);\n this.handleExtensionChangeCancel = this.handleExtensionChangeCancel.bind(\n this\n );\n this.handleExtensionChangeConfirm = this.handleExtensionChangeConfirm.bind(\n this\n );\n this.handleBreadcrumbSelect = this.handleBreadcrumbSelect.bind(this);\n\n const { defaultValue } = props;\n\n const path = FileUtils.hasPath(defaultValue)\n ? FileUtils.getPath(defaultValue)\n : '/';\n\n this.state = {\n isSubmitting: false,\n path,\n prevExtension: FileUtils.getExtension(defaultValue),\n showExtensionChangeModal: false,\n showOverwriteModal: false,\n value: FileUtils.getBaseName(defaultValue),\n };\n }\n\n componentDidUpdate(\n prevProps: NewItemModalProps,\n prevState: NewItemModalState\n ): void {\n const { isOpen } = this.props;\n const { isOpen: prevIsOpen } = prevProps;\n const { value, path } = this.state;\n if (!prevIsOpen && isOpen) {\n this.resetValue();\n this.isInitialLoad = true;\n }\n\n if (prevIsOpen && isOpen) {\n if (\n !this.isInitialLoad &&\n (path !== prevState.path || value !== prevState.value)\n ) {\n this.updateValidationStatus(path, value);\n }\n this.isInitialLoad = false;\n }\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n if (this.cancelableValidatePromise) {\n this.cancelableValidatePromise.cancel();\n }\n if (this.cancelableExistingItemPromise) {\n this.cancelableExistingItemPromise.cancel();\n }\n }\n\n private inputRef = React.createRef<HTMLInputElement>();\n\n private cancelableValidatePromise?: CancelablePromise<string>;\n\n private cancelableExistingItemPromise?: CancelablePromise<FileStorageItem | null>;\n\n private pending = new Pending();\n\n private pathMap = new Map();\n\n private isInitialLoad = true;\n\n resetValue(): void {\n const { defaultValue } = this.props as NewItemModalProps;\n const path = FileUtils.hasPath(defaultValue)\n ? FileUtils.getPath(defaultValue)\n : '/';\n this.setState({\n path,\n value: FileUtils.getBaseName(defaultValue),\n validationError: undefined,\n prevExtension: FileUtils.getExtension(defaultValue),\n isSubmitting: false,\n });\n }\n\n getValidationPromise(\n path: string,\n name: string,\n checkExisting = false\n ): CancelablePromise<string> {\n if (this.cancelableValidatePromise) {\n this.cancelableValidatePromise.cancel();\n }\n this.cancelableValidatePromise = PromiseUtils.makeCancelable(\n this.validateName(path, name, checkExisting)\n );\n return this.cancelableValidatePromise;\n }\n\n async validateName(\n path: string,\n name: string,\n checkExisting: boolean\n ): Promise<string> {\n FileUtils.validateName(name);\n\n const { defaultValue, storage } = this.props;\n if (checkExisting) {\n const value = `${path}${name}`;\n if (value !== defaultValue) {\n try {\n const existingFile = await storage.info(value);\n throw new FileExistsError(existingFile);\n } catch (e) {\n if (!(e instanceof FileNotFoundError)) {\n throw e;\n }\n // There is no existing file, ignore\n }\n }\n }\n\n return name;\n }\n\n updateValidationStatus(path: string, newName: string): void {\n this.getValidationPromise(path, newName)\n .then(() => {\n this.setState({ validationError: undefined });\n })\n .catch(this.handleValidationError)\n .catch(NewItemModal.handleError);\n }\n\n handleModalOpened(): void {\n this.focusRenameInput();\n }\n\n handleModalSubmit(): void {\n this.submitModal();\n }\n\n handleChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n this.setState({ value });\n }\n\n handleSelect(item: FileStorageItem): void {\n log.debug('handleSelect', item);\n if (item.type === 'directory') {\n this.setState({ path: FileUtils.makePath(item.filename) });\n } else {\n // Use selected item name and folder and focus the input\n const value = item.basename;\n const path = FileUtils.getPath(item.filename);\n this.setState({ value, path }, () => {\n this.focusRenameInput();\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleKeyDown(e: KeyboardEvent): void {\n const { key } = e;\n e.stopPropagation();\n\n switch (key) {\n case 'Enter': {\n // Prevent form submit event\n e.preventDefault();\n this.submitModal();\n break;\n }\n case 'Escape': {\n e.preventDefault();\n const { onCancel } = this.props;\n onCancel();\n break;\n }\n default:\n }\n }\n\n handleValidationError(err: Error): void {\n if (!(err instanceof ValidationError)) {\n throw err;\n }\n log.debug('Validation error', err);\n this.setState({ validationError: err });\n }\n\n handleOverwriteCancel(): void {\n this.setState({\n showOverwriteModal: false,\n isSubmitting: false,\n });\n }\n\n handleOverwriteConfirm(): void {\n this.setState({ showOverwriteModal: false });\n const { onSubmit } = this.props;\n const { path, value } = this.state;\n log.debug('handleOverwriteConfirm', path, value);\n\n onSubmit(`${path}${value}`, true);\n }\n\n handleExtensionChangeCancel(): void {\n log.debug('handleExtensionChangeCancel');\n this.setState(({ value, prevExtension }) => {\n const newValue = FileUtils.replaceExtension(value, prevExtension);\n return {\n showExtensionChangeModal: false,\n value: newValue,\n };\n });\n\n this.submitModal(true);\n }\n\n handleExtensionChangeConfirm(): void {\n log.debug('handleExtensionChangeConfirm');\n this.setState({ showExtensionChangeModal: false });\n this.submitModal(true);\n }\n\n /**\n * Focus rename input and select name part for files, select all text for folders\n */\n focusRenameInput(): void {\n const input = this.inputRef.current;\n if (input) {\n const { type } = this.props;\n const { value } = input;\n const selectionEnd =\n type === 'directory' ? value.length : value.lastIndexOf('.');\n input.focus();\n input.setSelectionRange(\n 0,\n selectionEnd > 0 ? selectionEnd : value.length\n );\n }\n }\n\n submitModal(skipExtensionCheck = false): void {\n this.setState(({ prevExtension, value, path }) => {\n const { notifyOnExtensionChange, type } = this.props;\n log.debug('submitModal', prevExtension, value);\n const newExtension = FileUtils.getExtension(value);\n if (\n notifyOnExtensionChange &&\n !skipExtensionCheck &&\n prevExtension !== null &&\n prevExtension !== newExtension\n ) {\n return {\n isSubmitting: false,\n showExtensionChangeModal: true,\n newExtension,\n };\n }\n\n this.getValidationPromise(path, value, true)\n .then((newItemName: string) => {\n const { onSubmit } = this.props;\n onSubmit(`${path}${value}`);\n })\n .catch(e => {\n // Don't allow using existing names for folders\n // For files, prompt if they want to overwrite existing file\n if (e instanceof FileExistsError) {\n if (type !== 'directory' && e.info.type !== 'directory') {\n this.setState({ showOverwriteModal: true });\n return;\n }\n }\n throw e;\n })\n .catch(e => {\n if (PromiseUtils.isCanceled(e)) {\n this.setState({ isSubmitting: false });\n }\n throw e;\n })\n .catch(this.handleValidationError)\n .catch(NewItemModal.handleError);\n\n return {\n isSubmitting: true,\n showExtensionChangeModal: false,\n newExtension: undefined,\n };\n });\n }\n\n handleBreadcrumbSelect(directoryPath: string): void {\n this.setState({ path: directoryPath });\n }\n\n renderPathButtons(path: string): React.ReactNode {\n const pathAsList = path.split('/');\n pathAsList.pop();\n return pathAsList.map((basename, index) => {\n let directoryPath = '';\n for (let i = 0; i < index; i += 1) {\n directoryPath += `${pathAsList[i]}/`;\n }\n directoryPath += `${basename}/`;\n\n return (\n <React.Fragment key={directoryPath}>\n <Button\n kind=\"ghost\"\n className=\"directory-breadcrumbs\"\n onClick={() => this.handleBreadcrumbSelect(directoryPath)}\n aria-label={index === 0 ? 'Home' : undefined}\n icon={\n index === 0 ? (\n <FontAwesomeIcon icon={vsHome} transform=\"right-1.6\" />\n ) : undefined\n }\n tooltip={index === 0 ? 'Home' : undefined}\n >\n {basename}\n </Button>\n /\n </React.Fragment>\n );\n });\n }\n\n render(): React.ReactNode {\n const { storage, isOpen, onCancel, placeholder, title, type } = this.props;\n const {\n isSubmitting,\n path,\n showExtensionChangeModal,\n showOverwriteModal,\n validationError,\n value,\n prevExtension,\n newExtension,\n } = this.state;\n\n const isDirectory = type === 'directory';\n const prevExtensionText = FileUtils.fileExtensionToString(prevExtension);\n const newExtensionText = FileUtils.fileExtensionToString(newExtension);\n const submitBtnLabel = isDirectory ? 'Create' : 'Save';\n const nameInputLabel = isDirectory ? 'New folder name' : 'Save file as';\n\n return (\n <>\n <Modal\n isOpen={isOpen}\n toggle={onCancel}\n onOpened={this.handleModalOpened}\n className=\"modal-dialog-centered new-file-modal theme-bg-dark\"\n >\n <ModalHeader toggle={onCancel}>{title}</ModalHeader>\n <ModalBody>\n <form>\n <div className=\"d-flex flex-column new-file-modal-content\">\n <div className=\"flex-grow-0 mb-4\">\n <label htmlFor=\"file-name-input\">{nameInputLabel}</label>\n <input\n id=\"file-name-input\"\n type=\"text\"\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n className={classNames('form-control', {\n 'is-invalid': validationError,\n })}\n value={value}\n placeholder={placeholder}\n ref={this.inputRef}\n onKeyDown={this.handleKeyDown}\n onChange={this.handleChange}\n />\n {validationError && (\n <div className=\"invalid-feedback\">\n {NewItemModal.getValidationMessage(validationError)}\n </div>\n )}\n </div>\n <div className=\"flex-grow-0\">\n <label>Directory: /</label>\n {this.renderPathButtons(path)}\n </div>\n <div className=\"flex-grow-1 file-explorer-container\">\n <FileExplorer\n onSelect={this.handleSelect}\n storage={storage}\n focusedPath={path}\n />\n </div>\n </div>\n </form>\n </ModalBody>\n\n <ModalFooter>\n <Button kind=\"secondary\" onClick={onCancel}>\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n disabled={isSubmitting}\n onClick={this.handleModalSubmit}\n >\n {submitBtnLabel}\n </Button>\n </ModalFooter>\n </Modal>\n <BasicModal\n isOpen={showOverwriteModal}\n headerText=\"Confirm overwrite\"\n bodyText=\"File with this name already exists, are you sure you want to overwrite it?\"\n onCancel={this.handleOverwriteCancel}\n onConfirm={this.handleOverwriteConfirm}\n cancelButtonText=\"Cancel\"\n confirmButtonText=\"Overwrite\"\n />\n <BasicModal\n isOpen={showExtensionChangeModal}\n headerText=\"Confirm extension change\"\n bodyText={`Are you sure you want to change extension from \"${prevExtensionText}\" to \"${newExtensionText}\"?`}\n onCancel={this.handleExtensionChangeCancel}\n onConfirm={this.handleExtensionChangeConfirm}\n cancelButtonText={`Keep \"${prevExtensionText}\"`}\n confirmButtonText={`Use \"${newExtensionText}\"`}\n />\n </>\n );\n }\n}\n\nexport default NewItemModal;\n"],"mappings":"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"}
1
+ {"version":3,"file":"NewItemModal.js","names":["React","PureComponent","PropTypes","classNames","Modal","ModalBody","ModalFooter","ModalHeader","BasicModal","Button","Pending","PromiseUtils","ValidationError","Log","vsHome","FontAwesomeIcon","FileExplorer","FileUtils","FileExistsError","FileNotFoundError","log","module","NewItemModal","getValidationMessage","err","info","type","handleError","isCanceled","error","constructor","props","createRef","Map","handleModalSubmit","bind","handleModalOpened","handleSelect","handleChange","handleKeyDown","handleValidationError","handleOverwriteCancel","handleOverwriteConfirm","handleExtensionChangeCancel","handleExtensionChangeConfirm","handleBreadcrumbSelect","defaultValue","path","hasPath","getPath","state","isSubmitting","prevExtension","getExtension","showExtensionChangeModal","showOverwriteModal","value","getBaseName","componentDidUpdate","prevProps","prevState","isOpen","prevIsOpen","resetValue","isInitialLoad","updateValidationStatus","componentWillUnmount","pending","cancel","cancelableValidatePromise","cancelableExistingItemPromise","setState","validationError","undefined","getValidationPromise","name","checkExisting","makeCancelable","validateName","storage","existingFile","e","newName","then","catch","focusRenameInput","submitModal","event","target","item","debug","makePath","filename","basename","key","stopPropagation","preventDefault","onCancel","onSubmit","newValue","replaceExtension","input","inputRef","current","selectionEnd","length","lastIndexOf","focus","setSelectionRange","skipExtensionCheck","notifyOnExtensionChange","newExtension","newItemName","directoryPath","renderPathButtons","pathAsList","split","pop","map","index","i","render","placeholder","title","isDirectory","prevExtensionText","fileExtensionToString","newExtensionText","submitBtnLabel","nameInputLabel","bool","string","isRequired","oneOf","func","shape","isOverwrite"],"sources":["../src/NewItemModal.tsx"],"sourcesContent":["import React, { ChangeEvent, KeyboardEvent, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n BasicModal,\n Button,\n} from '@deephaven/components';\nimport {\n CancelablePromise,\n Pending,\n PromiseUtils,\n ValidationError,\n} from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport { vsHome } from '@deephaven/icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport FileExplorer from './FileExplorer';\nimport FileStorage, { FileStorageItem, FileType } from './FileStorage';\nimport FileUtils from './FileUtils';\n\nimport './NewItemModal.scss';\nimport FileExistsError from './FileExistsError';\nimport FileNotFoundError from './FileNotFoundError';\n\nconst log = Log.module('NewItemModal');\n\nexport type NewItemModalProps = typeof NewItemModal.defaultProps & {\n isOpen: boolean;\n title: string;\n defaultValue: string;\n type: FileType;\n onSubmit: (name: string, isOverwrite?: boolean) => void;\n onCancel: () => void;\n placeholder: string;\n storage: FileStorage;\n notifyOnExtensionChange?: boolean;\n};\n\nexport type NewItemModalState = {\n path: string;\n isSubmitting: boolean;\n showExtensionChangeModal: boolean;\n showOverwriteModal: boolean;\n validationError?: ValidationError;\n value: string;\n prevExtension?: string;\n newExtension?: string;\n};\n\nclass NewItemModal extends PureComponent<NewItemModalProps, NewItemModalState> {\n static propTypes = {\n isOpen: PropTypes.bool,\n title: PropTypes.string.isRequired,\n defaultValue: PropTypes.string,\n type: PropTypes.oneOf(['file', 'directory']).isRequired,\n onSubmit: PropTypes.func,\n onCancel: PropTypes.func,\n placeholder: PropTypes.string,\n storage: PropTypes.shape({}).isRequired,\n notifyOnExtensionChange: PropTypes.bool,\n };\n\n static defaultProps = {\n isOpen: false,\n defaultValue: '/',\n notifyOnExtensionChange: false,\n placeholder: '',\n onSubmit: (name: string, isOverwrite?: boolean): void => undefined,\n onCancel: (): void => undefined,\n };\n\n static getValidationMessage(err: Error): string {\n if (err instanceof FileExistsError && err.info.type === 'directory') {\n return 'Error: Cannot overwrite existing directory';\n }\n return `${err}`;\n }\n\n static handleError(err: Error): void {\n if (!PromiseUtils.isCanceled(err)) {\n log.error(err);\n }\n }\n\n constructor(props: NewItemModalProps) {\n super(props);\n this.handleModalSubmit = this.handleModalSubmit.bind(this);\n this.handleModalOpened = this.handleModalOpened.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleValidationError = this.handleValidationError.bind(this);\n this.handleOverwriteCancel = this.handleOverwriteCancel.bind(this);\n this.handleOverwriteConfirm = this.handleOverwriteConfirm.bind(this);\n this.handleExtensionChangeCancel =\n this.handleExtensionChangeCancel.bind(this);\n this.handleExtensionChangeConfirm =\n this.handleExtensionChangeConfirm.bind(this);\n this.handleBreadcrumbSelect = this.handleBreadcrumbSelect.bind(this);\n\n const { defaultValue } = props;\n\n const path = FileUtils.hasPath(defaultValue)\n ? FileUtils.getPath(defaultValue)\n : '/';\n\n this.state = {\n isSubmitting: false,\n path,\n prevExtension: FileUtils.getExtension(defaultValue),\n showExtensionChangeModal: false,\n showOverwriteModal: false,\n value: FileUtils.getBaseName(defaultValue),\n };\n }\n\n componentDidUpdate(\n prevProps: NewItemModalProps,\n prevState: NewItemModalState\n ): void {\n const { isOpen } = this.props;\n const { isOpen: prevIsOpen } = prevProps;\n const { value, path } = this.state;\n if (!prevIsOpen && isOpen) {\n this.resetValue();\n this.isInitialLoad = true;\n }\n\n if (prevIsOpen && isOpen) {\n if (\n !this.isInitialLoad &&\n (path !== prevState.path || value !== prevState.value)\n ) {\n this.updateValidationStatus(path, value);\n }\n this.isInitialLoad = false;\n }\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n if (this.cancelableValidatePromise) {\n this.cancelableValidatePromise.cancel();\n }\n if (this.cancelableExistingItemPromise) {\n this.cancelableExistingItemPromise.cancel();\n }\n }\n\n private inputRef = React.createRef<HTMLInputElement>();\n\n private cancelableValidatePromise?: CancelablePromise<string>;\n\n private cancelableExistingItemPromise?: CancelablePromise<FileStorageItem | null>;\n\n private pending = new Pending();\n\n private pathMap = new Map();\n\n private isInitialLoad = true;\n\n resetValue(): void {\n const { defaultValue } = this.props as NewItemModalProps;\n const path = FileUtils.hasPath(defaultValue)\n ? FileUtils.getPath(defaultValue)\n : '/';\n this.setState({\n path,\n value: FileUtils.getBaseName(defaultValue),\n validationError: undefined,\n prevExtension: FileUtils.getExtension(defaultValue),\n isSubmitting: false,\n });\n }\n\n getValidationPromise(\n path: string,\n name: string,\n checkExisting = false\n ): CancelablePromise<string> {\n if (this.cancelableValidatePromise) {\n this.cancelableValidatePromise.cancel();\n }\n this.cancelableValidatePromise = PromiseUtils.makeCancelable(\n this.validateName(path, name, checkExisting)\n );\n return this.cancelableValidatePromise;\n }\n\n async validateName(\n path: string,\n name: string,\n checkExisting: boolean\n ): Promise<string> {\n FileUtils.validateName(name);\n\n const { defaultValue, storage } = this.props;\n if (checkExisting) {\n const value = `${path}${name}`;\n if (value !== defaultValue) {\n try {\n const existingFile = await storage.info(value);\n throw new FileExistsError(existingFile);\n } catch (e) {\n if (!(e instanceof FileNotFoundError)) {\n throw e;\n }\n // There is no existing file, ignore\n }\n }\n }\n\n return name;\n }\n\n updateValidationStatus(path: string, newName: string): void {\n this.getValidationPromise(path, newName)\n .then(() => {\n this.setState({ validationError: undefined });\n })\n .catch(this.handleValidationError)\n .catch(NewItemModal.handleError);\n }\n\n handleModalOpened(): void {\n this.focusRenameInput();\n }\n\n handleModalSubmit(): void {\n this.submitModal();\n }\n\n handleChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n this.setState({ value });\n }\n\n handleSelect(item: FileStorageItem): void {\n log.debug('handleSelect', item);\n if (item.type === 'directory') {\n this.setState({ path: FileUtils.makePath(item.filename) });\n } else {\n // Use selected item name and folder and focus the input\n const value = item.basename;\n const path = FileUtils.getPath(item.filename);\n this.setState({ value, path }, () => {\n this.focusRenameInput();\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleKeyDown(e: KeyboardEvent): void {\n const { key } = e;\n e.stopPropagation();\n\n switch (key) {\n case 'Enter': {\n // Prevent form submit event\n e.preventDefault();\n this.submitModal();\n break;\n }\n case 'Escape': {\n e.preventDefault();\n const { onCancel } = this.props;\n onCancel();\n break;\n }\n default:\n }\n }\n\n handleValidationError(err: Error): void {\n if (!(err instanceof ValidationError)) {\n throw err;\n }\n log.debug('Validation error', err);\n this.setState({ validationError: err });\n }\n\n handleOverwriteCancel(): void {\n this.setState({\n showOverwriteModal: false,\n isSubmitting: false,\n });\n }\n\n handleOverwriteConfirm(): void {\n this.setState({ showOverwriteModal: false });\n const { onSubmit } = this.props;\n const { path, value } = this.state;\n log.debug('handleOverwriteConfirm', path, value);\n\n onSubmit(`${path}${value}`, true);\n }\n\n handleExtensionChangeCancel(): void {\n log.debug('handleExtensionChangeCancel');\n this.setState(({ value, prevExtension }) => {\n const newValue = FileUtils.replaceExtension(value, prevExtension);\n return {\n showExtensionChangeModal: false,\n value: newValue,\n };\n });\n\n this.submitModal(true);\n }\n\n handleExtensionChangeConfirm(): void {\n log.debug('handleExtensionChangeConfirm');\n this.setState({ showExtensionChangeModal: false });\n this.submitModal(true);\n }\n\n /**\n * Focus rename input and select name part for files, select all text for folders\n */\n focusRenameInput(): void {\n const input = this.inputRef.current;\n if (input) {\n const { type } = this.props;\n const { value } = input;\n const selectionEnd =\n type === 'directory' ? value.length : value.lastIndexOf('.');\n input.focus();\n input.setSelectionRange(\n 0,\n selectionEnd > 0 ? selectionEnd : value.length\n );\n }\n }\n\n submitModal(skipExtensionCheck = false): void {\n this.setState(({ prevExtension, value, path }) => {\n const { notifyOnExtensionChange, type } = this.props;\n log.debug('submitModal', prevExtension, value);\n const newExtension = FileUtils.getExtension(value);\n if (\n notifyOnExtensionChange &&\n !skipExtensionCheck &&\n prevExtension !== null &&\n prevExtension !== newExtension\n ) {\n return {\n isSubmitting: false,\n showExtensionChangeModal: true,\n newExtension,\n };\n }\n\n this.getValidationPromise(path, value, true)\n .then((newItemName: string) => {\n const { onSubmit } = this.props;\n onSubmit(`${path}${value}`);\n })\n .catch(e => {\n // Don't allow using existing names for folders\n // For files, prompt if they want to overwrite existing file\n if (e instanceof FileExistsError) {\n if (type !== 'directory' && e.info.type !== 'directory') {\n this.setState({ showOverwriteModal: true });\n return;\n }\n }\n throw e;\n })\n .catch(e => {\n if (PromiseUtils.isCanceled(e)) {\n this.setState({ isSubmitting: false });\n }\n throw e;\n })\n .catch(this.handleValidationError)\n .catch(NewItemModal.handleError);\n\n return {\n isSubmitting: true,\n showExtensionChangeModal: false,\n newExtension: undefined,\n };\n });\n }\n\n handleBreadcrumbSelect(directoryPath: string): void {\n this.setState({ path: directoryPath });\n }\n\n renderPathButtons(path: string): React.ReactNode {\n const pathAsList = path.split('/');\n pathAsList.pop();\n return pathAsList.map((basename, index) => {\n let directoryPath = '';\n for (let i = 0; i < index; i += 1) {\n directoryPath += `${pathAsList[i]}/`;\n }\n directoryPath += `${basename}/`;\n\n return (\n <React.Fragment key={directoryPath}>\n <Button\n kind=\"ghost\"\n className=\"directory-breadcrumbs\"\n onClick={() => this.handleBreadcrumbSelect(directoryPath)}\n aria-label={index === 0 ? 'Home' : undefined}\n icon={\n index === 0 ? (\n <FontAwesomeIcon icon={vsHome} transform=\"right-1.6\" />\n ) : undefined\n }\n tooltip={index === 0 ? 'Home' : undefined}\n >\n {basename}\n </Button>\n /\n </React.Fragment>\n );\n });\n }\n\n render(): React.ReactNode {\n const { storage, isOpen, onCancel, placeholder, title, type } = this.props;\n const {\n isSubmitting,\n path,\n showExtensionChangeModal,\n showOverwriteModal,\n validationError,\n value,\n prevExtension,\n newExtension,\n } = this.state;\n\n const isDirectory = type === 'directory';\n const prevExtensionText = FileUtils.fileExtensionToString(prevExtension);\n const newExtensionText = FileUtils.fileExtensionToString(newExtension);\n const submitBtnLabel = isDirectory ? 'Create' : 'Save';\n const nameInputLabel = isDirectory ? 'New folder name' : 'Save file as';\n\n return (\n <>\n <Modal\n isOpen={isOpen}\n toggle={onCancel}\n onOpened={this.handleModalOpened}\n className=\"modal-dialog-centered new-file-modal theme-bg-dark\"\n >\n <ModalHeader toggle={onCancel}>{title}</ModalHeader>\n <ModalBody>\n <form>\n <div className=\"d-flex flex-column new-file-modal-content\">\n <div className=\"flex-grow-0 mb-4\">\n <label htmlFor=\"file-name-input\">{nameInputLabel}</label>\n <input\n id=\"file-name-input\"\n type=\"text\"\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n className={classNames('form-control', {\n 'is-invalid': validationError,\n })}\n value={value}\n placeholder={placeholder}\n ref={this.inputRef}\n onKeyDown={this.handleKeyDown}\n onChange={this.handleChange}\n />\n {validationError && (\n <div className=\"invalid-feedback\">\n {NewItemModal.getValidationMessage(validationError)}\n </div>\n )}\n </div>\n <div className=\"flex-grow-0\">\n <label>Directory: /</label>\n {this.renderPathButtons(path)}\n </div>\n <div className=\"flex-grow-1 file-explorer-container\">\n <FileExplorer\n onSelect={this.handleSelect}\n storage={storage}\n focusedPath={path}\n />\n </div>\n </div>\n </form>\n </ModalBody>\n\n <ModalFooter>\n <Button kind=\"secondary\" onClick={onCancel}>\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n disabled={isSubmitting}\n onClick={this.handleModalSubmit}\n >\n {submitBtnLabel}\n </Button>\n </ModalFooter>\n </Modal>\n <BasicModal\n isOpen={showOverwriteModal}\n headerText=\"Confirm overwrite\"\n bodyText=\"File with this name already exists, are you sure you want to overwrite it?\"\n onCancel={this.handleOverwriteCancel}\n onConfirm={this.handleOverwriteConfirm}\n cancelButtonText=\"Cancel\"\n confirmButtonText=\"Overwrite\"\n />\n <BasicModal\n isOpen={showExtensionChangeModal}\n headerText=\"Confirm extension change\"\n bodyText={`Are you sure you want to change extension from \"${prevExtensionText}\" to \"${newExtensionText}\"?`}\n onCancel={this.handleExtensionChangeCancel}\n onConfirm={this.handleExtensionChangeConfirm}\n cancelButtonText={`Keep \"${prevExtensionText}\"`}\n confirmButtonText={`Use \"${newExtensionText}\"`}\n />\n </>\n );\n }\n}\n\nexport default NewItemModal;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/file-explorer",
3
- "version": "0.44.2-provenance.4+f9200e77",
3
+ "version": "0.45.0",
4
4
  "description": "Deephaven File Explorer React component",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,11 +22,11 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/components": "^0.44.2-provenance.4+f9200e77",
26
- "@deephaven/icons": "^0.44.2-provenance.4+f9200e77",
27
- "@deephaven/log": "^0.44.2-provenance.4+f9200e77",
28
- "@deephaven/storage": "^0.44.2-provenance.4+f9200e77",
29
- "@deephaven/utils": "^0.44.2-provenance.4+f9200e77",
25
+ "@deephaven/components": "^0.45.0",
26
+ "@deephaven/icons": "^0.45.0",
27
+ "@deephaven/log": "^0.45.0",
28
+ "@deephaven/storage": "^0.45.0",
29
+ "@deephaven/utils": "^0.45.0",
30
30
  "@fortawesome/fontawesome-svg-core": "^6.2.1",
31
31
  "@fortawesome/react-fontawesome": "^0.2.0",
32
32
  "classnames": "^2.3.1",
@@ -37,7 +37,7 @@
37
37
  "react": "^17.0.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@deephaven/mocks": "^0.44.2-provenance.4+f9200e77"
40
+ "@deephaven/mocks": "^0.45.0"
41
41
  },
42
42
  "files": [
43
43
  "dist"
@@ -48,5 +48,5 @@
48
48
  "publishConfig": {
49
49
  "access": "public"
50
50
  },
51
- "gitHead": "f9200e77d5d7b3c375cb6bcefd7e51f1c291199c"
51
+ "gitHead": "1f0f10b9de2fc8a7ff0800115ec3460c0572c016"
52
52
  }