From 418ec5434ef65bef1230ca98246341f67dd753e3 Mon Sep 17 00:00:00 2001 From: Murderlon Date: Thu, 4 Nov 2021 14:02:49 +0100 Subject: [PATCH 1/4] Status bar improvements --- examples/dev/Dashboard.html | 11 ------- .../src/components/FileItem/FileInfo/index.js | 17 ++++++---- .../components/FileItem/FileInfo/index.scss | 9 ++++++ .../src/components/FileItem/index.scss | 11 ++++--- packages/@uppy/status-bar/src/Components.js | 32 +++++++++++-------- packages/@uppy/status-bar/src/StatusBar.js | 27 ++++++++-------- packages/@uppy/status-bar/src/index.js | 7 ++-- packages/@uppy/status-bar/src/style.scss | 13 ++++++++ 8 files changed, 73 insertions(+), 54 deletions(-) diff --git a/examples/dev/Dashboard.html b/examples/dev/Dashboard.html index 99a64e8a8c..8e017e2453 100644 --- a/examples/dev/Dashboard.html +++ b/examples/dev/Dashboard.html @@ -16,14 +16,6 @@ margin: auto; } - button, - input { - color: green; - font-size: 30px; - text-align: right; - border: 2px solid purple; - } - /* css to make sure that Dashboard's css overrides page css */ ul { margin: 60px; @@ -31,9 +23,6 @@ li { margin: 60px; } - a { - color: purple; - } diff --git a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js index 843e1b3ca9..05790c66ce 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js +++ b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js @@ -91,22 +91,25 @@ const ErrorButton = ({ file, onClick }) => { } module.exports = function FileInfo (props) { + const { file } = props return (
- {renderFileName(props)} -
- {renderAuthor(props)} - {renderFileSize(props)} - {ReSelectButton(props)} +
+ {renderFileName(props)} alert(props.file.error)} // TODO: move to a custom alert implementation />
+
+ {renderAuthor(props)} + {renderFileSize(props)} + {ReSelectButton(props)} +
) } diff --git a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.scss b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.scss index b2a10f4a51..081cf72005 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.scss +++ b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.scss @@ -17,6 +17,15 @@ } } +.uppy-Dashboard-Item-fileName { + display: flex; + align-items: baseline; + + button { + margin-left: 5px; + } +} + .uppy-Dashboard-Item-author { color: $gray-600; vertical-align: bottom; diff --git a/packages/@uppy/dashboard/src/components/FileItem/index.scss b/packages/@uppy/dashboard/src/components/FileItem/index.scss index ccfd34d6f5..7472d82584 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/index.scss +++ b/packages/@uppy/dashboard/src/components/FileItem/index.scss @@ -143,21 +143,22 @@ .uppy-Dashboard-Item-errorDetails { position: relative; - top: -1px; + top: 0; display: inline-block; - width: 12px; - height: 12px; + width: 13px; + height: 13px; color: $white; font-weight: 600; - font-size: 8px; + font-size: 10px; line-height: 12px; text-align: center; vertical-align: middle; background-color: $gray-500; border-radius: 50%; + border: none; cursor: help; appearance: none; - inset-inline-start: 6px; + inset-inline-start: 2px; } .uppy-Dashboard-Item-errorDetails::after { diff --git a/packages/@uppy/status-bar/src/Components.js b/packages/@uppy/status-bar/src/Components.js index 083a432567..f21d1de7be 100644 --- a/packages/@uppy/status-bar/src/Components.js +++ b/packages/@uppy/status-bar/src/Components.js @@ -247,7 +247,7 @@ function ProgressDetails (props) { ) } -function UnknownProgressDetails (props) { +function FileUploadCount (props) { const { i18n, complete, numUploads } = props return ( @@ -328,7 +328,7 @@ function ProgressBarUploading (props) { ) } return ( - -
+
+ {i18n('uploadFailed')} + +
+ +
-
) } diff --git a/packages/@uppy/status-bar/src/StatusBar.js b/packages/@uppy/status-bar/src/StatusBar.js index bbd412d4bc..130a63ed6c 100644 --- a/packages/@uppy/status-bar/src/StatusBar.js +++ b/packages/@uppy/status-bar/src/StatusBar.js @@ -133,16 +133,12 @@ function StatusBar (props) { && !hideUploadButton const showCancelBtn - = !hideCancelButton - && uploadState !== STATE_WAITING - && uploadState !== STATE_COMPLETE + = !hideCancelButton && uploadState !== STATE_WAITING && uploadState !== STATE_COMPLETE const showPauseResumeBtn - = resumableUploads - && !hidePauseResumeButton - && uploadState === STATE_UPLOADING + = resumableUploads && !hidePauseResumeButton && uploadState === STATE_UPLOADING - const showRetryBtn = error && !hideRetryButton + const showRetryBtn = error && !isAllComplete && !hideRetryButton const showDoneBtn = doneButtonHandler && uploadState === STATE_COMPLETE @@ -174,15 +170,18 @@ function StatusBar (props) { switch (uploadState) { case STATE_PREPROCESSING: case STATE_POSTPROCESSING: - return ( - - ) + return case STATE_COMPLETE: return case STATE_ERROR: - return + return ( + + ) case STATE_UPLOADING: return ( - {(recoveredState || showUploadBtn) ? ( + {recoveredState || showUploadBtn ? ( Date: Mon, 8 Nov 2021 12:10:00 +0100 Subject: [PATCH 2/4] Revert dashboard.html styles, improve layout of error state --- examples/dev/Dashboard.html | 11 +++++++ .../@uppy/companion/src/server/Uploader.js | 8 +++++ .../src/components/FileItem/FileInfo/index.js | 2 +- packages/@uppy/status-bar/src/Components.js | 31 ++++++++----------- packages/@uppy/status-bar/src/style.scss | 18 +++-------- 5 files changed, 38 insertions(+), 32 deletions(-) diff --git a/examples/dev/Dashboard.html b/examples/dev/Dashboard.html index 8e017e2453..99a64e8a8c 100644 --- a/examples/dev/Dashboard.html +++ b/examples/dev/Dashboard.html @@ -16,6 +16,14 @@ margin: auto; } + button, + input { + color: green; + font-size: 30px; + text-align: right; + border: 2px solid purple; + } + /* css to make sure that Dashboard's css overrides page css */ ul { margin: 60px; @@ -23,6 +31,9 @@ li { margin: 60px; } + a { + color: purple; + } diff --git a/packages/@uppy/companion/src/server/Uploader.js b/packages/@uppy/companion/src/server/Uploader.js index a5266dc446..3debc97954 100644 --- a/packages/@uppy/companion/src/server/Uploader.js +++ b/packages/@uppy/companion/src/server/Uploader.js @@ -40,6 +40,8 @@ function exceedsMaxFileSize (maxFileSize, size) { return maxFileSize && size && size > maxFileSize } +let testIdx = 0 + class AbortError extends Error {} class Uploader { @@ -465,6 +467,12 @@ class Uploader { * @param {any} stream */ async _uploadTus (stream) { + testIdx++ + if (testIdx > 1) { + this.failed = true + setTimeout(() => this.emitError(new Error('test')), 1000) + return Promise.reject(new Error('test')) + } const uploader = this const isFileStream = stream instanceof ReadStream diff --git a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js index 05790c66ce..c578503a66 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js +++ b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.js @@ -76,7 +76,7 @@ const ErrorButton = ({ file, onClick }) => { if (file.error) { return (