Skip to content

[PB-6707]: surface failed uploads in the retry modal and task logger - #2076

Merged
terrerox merged 3 commits into
feat/folder-upload-partial-failure-retryfrom
feat/failed-uploads-retry-ui
Aug 6, 2026
Merged

[PB-6707]: surface failed uploads in the retry modal and task logger#2076
terrerox merged 3 commits into
feat/folder-upload-partial-failure-retryfrom
feat/failed-uploads-retry-ui

Conversation

@terrerox

Copy link
Copy Markdown
Contributor

Description

Retry entries are grouped under their parent folder task via relatedTaskId, and non-retryable files show a "Not allowed" label (added to all locales) instead of a retry button.

Also normalizes the two RetryableTask param shapes in TaskToRetryItem behind a getDisplayData helper (file names now display with their extension), tightens the retry modal row padding, and adds sizeClassName/iconSize props to TaskLoggerButton.

Related Issues

Related Pull Requests

Checklist

  • Changes have been tested locally.
  • Unit tests have been written or updated as necessary.
  • The code adheres to the repository's coding standards.
  • Relevant documentation has been added or updated.
  • No new warnings or errors have been introduced.
  • SonarCloud issues have been reviewed and addressed.
  • QA Passed

Testing Process

Additional Notes

Retry entries are grouped under their parent folder task via
relatedTaskId, and non-retryable files show a "Not allowed" label
(added to all locales) instead of a retry button.

Also normalizes the two RetryableTask param shapes in TaskToRetryItem
behind a getDisplayData helper (file names now display with their
extension), tightens the retry modal row padding, and adds
sizeClassName/iconSize props to TaskLoggerButton.
@terrerox terrerox self-assigned this Jul 28, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 28, 2026

Copy link
Copy Markdown

Deploying drive-web with  Cloudflare Pages  Cloudflare Pages

Latest commit: ed1ed09
Status: ✅  Deploy successful!
Preview URL: https://a15de695.drive-web.pages.dev
Branch Preview URL: https://feat-failed-uploads-retry-ui.drive-web.pages.dev

View logs

Comment on lines +87 to +90
return haveWarnings ? (
<TaskLoggerButton onClick={infoAction} Icon={InfoIcon} iconSize={20} />
) : (
<TaskLoggerButton onClick={magnifyingAction} Icon={MagnifyingGlass} />

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there’s any file with error, do we no longer display the magnifying glass icon to navigate to the folder?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly. Now we’ll enable an info icon that, when clicked, will open this modal.
Screenshot 2026-08-03 at 11 07 03 PM

Comment on lines +19 to +25
const getDisplayData = (params: RetryableTask['params']): DisplayData => ({
name: params?.filecontent?.name ?? params.plainName ?? params.name,
type: params?.filecontent?.type ?? params.type,
size: params?.filecontent?.size ?? params.size,
modifiedAt: params?.filecontent?.content.lastModified ?? params.updatedAt,
isFolder: Boolean(params?.isFolder),
});

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand that this depends on whether it’s an upload or a download, as the data arrives with the fields structured differently, but this needs to be reorganised more effectively, as looking at it like this, we can’t tell why there are so many fallback options for the same field.
Looking at this code alone, it’s impossible to tell why, for ‘name’, it checks ‘filecontent.name’, then uses ‘params.plainname’ as a fallback, and then ‘params.name’.

Introduce RetryableTaskType and RetryableTaskStatus enums in RetryManager
and use them across the network layer, upload thunks, and task components.
Split TaskToRetryItem's getDisplayData into typed upload/download variants
so each task type maps its own params shape.
@terrerox
terrerox requested a review from a team as a code owner August 4, 2026 03:12
@terrerox
terrerox requested a review from CandelR August 4, 2026 03:12
Comment thread src/app/tasks/components/TaskLogger/TaskLogger.tsx
<TaskLoggerButton onClick={() => downloadItem(file)} Icon={RestartIcon} sizeClassName="h-8 w-8" iconSize={16} />
)}
{!isNotAllowed && status === RetryableTaskStatus.Retrying && (
<CircleNotch size={16} className="mr-2 animate-spin text-gray-60" weight="bold" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change it to Spinner; CircleNotch is deprecated

@sonarqubecloud

sonarqubecloud Bot commented Aug 4, 2026

Copy link
Copy Markdown

@terrerox
terrerox requested a review from TamaraFinogina August 4, 2026 15:37
@terrerox terrerox changed the title [BR-2136]: surface failed uploads in the retry modal and task logger [PB-6707]: surface failed uploads in the retry modal and task logger Aug 5, 2026
@terrerox
terrerox merged commit 14e2d9c into feat/folder-upload-partial-failure-retry Aug 6, 2026
5 checks passed
@terrerox
terrerox deleted the feat/failed-uploads-retry-ui branch August 6, 2026 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants