Browse Source

image-editor: show “edit” icon even when metaFields are not specified (#2614)

* edit icon is shown and take straight to the image editor if metaFields aren’t passed

* remove console.log
Artur Paikin 4 years ago
parent
commit
767c887621

+ 15 - 3
packages/@uppy/dashboard/src/components/FileItem/Buttons/index.js

@@ -5,12 +5,13 @@ function EditButton ({
   file,
   uploadInProgressOrComplete,
   metaFields,
+  canEditFile,
   i18n,
   onClick
 }) {
-  if (!uploadInProgressOrComplete &&
+  if ((!uploadInProgressOrComplete &&
       metaFields &&
-      metaFields.length > 0) {
+      metaFields.length > 0) || canEditFile(file)) {
     return (
       <button
         class="uppy-u-reset uppy-Dashboard-Item-action uppy-Dashboard-Item-action--edit"
@@ -80,24 +81,35 @@ module.exports = function Buttons (props) {
   const {
     file,
     uploadInProgressOrComplete,
+    canEditFile,
     metaFields,
     showLinkToFileUploadResult,
     showRemoveButton,
     i18n,
     removeFile,
     toggleFileCard,
+    openFileEditor,
     log,
     info
   } = props
 
+  const editAction = () => {
+    if (metaFields && metaFields.length > 0) {
+      toggleFileCard(file.id)
+    } else {
+      openFileEditor(file)
+    }
+  }
+
   return (
     <div className="uppy-Dashboard-Item-actionWrapper">
       <EditButton
         i18n={i18n}
         file={file}
         uploadInProgressOrComplete={uploadInProgressOrComplete}
+        canEditFile={canEditFile}
         metaFields={metaFields}
-        onClick={() => toggleFileCard(file.id)}
+        onClick={editAction}
       />
       {showLinkToFileUploadResult && file.uploadURL ? (
         <CopyLinkButton

+ 2 - 0
packages/@uppy/dashboard/src/components/FileItem/index.js

@@ -98,10 +98,12 @@ module.exports = class FileItem extends Component {
 
             showLinkToFileUploadResult={this.props.showLinkToFileUploadResult}
             showRemoveButton={showRemoveButton}
+            canEditFile={this.props.canEditFile}
 
             uploadInProgressOrComplete={uploadInProgressOrComplete}
             removeFile={this.props.removeFile}
             toggleFileCard={this.props.toggleFileCard}
+            openFileEditor={this.props.openFileEditor}
 
             i18n={this.props.i18n}
             log={this.props.log}

+ 2 - 0
packages/@uppy/dashboard/src/components/FileList.js

@@ -75,6 +75,8 @@ module.exports = (props) => {
             key={fileID}
             {...fileProps}
             role="listitem"
+            openFileEditor={props.openFileEditor}
+            canEditFile={props.canEditFile}
             file={props.files[fileID]}
           />
         ))}

+ 1 - 0
packages/@uppy/dashboard/src/index.js

@@ -256,6 +256,7 @@ module.exports = class Dashboard extends Plugin {
 
     this.setPluginState({
       showFileEditor: true,
+      fileCardFor: file.id || null,
       activeOverlayType: 'FileEditor'
     })