17782: Disabling typechecking for some common Field component usage.
[arvados-workbench2.git] / src / views-components / rename-file-dialog / rename-file-dialog.tsx
index 1a806511523b6e0bc3fabeb1322a72ba615e3fcf..b67697b5db6278837fed4e617b48e8bfa2b60475 100644 (file)
@@ -2,25 +2,27 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import * as React from 'react';
-import { compose } from 'redux';
+import React from 'react';
+import { compose, Dispatch } from 'redux';
 import { reduxForm, InjectedFormProps, Field } from 'redux-form';
-import { withDialog, WithDialogProps } from '~/store/dialog/with-dialog';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
+import { withDialog, WithDialogProps } from 'store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
 import { DialogContentText } from '@material-ui/core';
-import { TextField } from '~/components/text-field/text-field';
-import { RENAME_FILE_DIALOG, RenameFileDialogData, renameFile } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
-import { WarningCollection } from '~/components/warning-collection/warning-collection';
+import { TextField } from 'components/text-field/text-field';
+import { RENAME_FILE_DIALOG, RenameFileDialogData, renameFile } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { WarningCollection } from 'components/warning-collection/warning-collection';
+import { RENAME_FILE_VALIDATION } from 'validators/validators';
 
 export const RenameFileDialog = compose(
     withDialog(RENAME_FILE_DIALOG),
     reduxForm({
         form: RENAME_FILE_DIALOG,
-        onSubmit: (data: { name: string }, dispatch) => {
-            dispatch<any>(renameFile(data.name));
+        touchOnChange: true,
+        onSubmit: (data: { path: string }, dispatch: Dispatch) => {
+            dispatch<any>(renameFile(data.path));
         }
     })
-)((props: WithDialogProps<RenameFileDialogData> & InjectedFormProps<{ name: string }>) =>
+)((props: WithDialogProps<RenameFileDialogData> & InjectedFormProps<{ name: string, path: string }>) =>
     <FormDialog
         dialogTitle='Rename'
         formFields={RenameDialogFormFields}
@@ -33,9 +35,10 @@ const RenameDialogFormFields = (props: WithDialogProps<RenameFileDialogData>) =>
         {`Please, enter a new name for ${props.data.name}`}
     </DialogContentText>
     <Field
-        name='name'
-        component={TextField}
+        name='path'
+        component={TextField as any}
         autoFocus={true}
+        validate={RENAME_FILE_VALIDATION}
     />
-    <WarningCollection text="Renaming a file will change content address." />
+    <WarningCollection text="Renaming a file will change the collection's content address." />
 </>;