Skip to content

Feat: Enhance file transfer UI, translations, and progress tracking#197

Merged
SloMR merged 5 commits into
mainfrom
feat/EnhanceDownloadButtons
May 8, 2026
Merged

Feat: Enhance file transfer UI, translations, and progress tracking#197
SloMR merged 5 commits into
mainfrom
feat/EnhanceDownloadButtons

Conversation

@SloMR
Copy link
Copy Markdown
Owner

@SloMR SloMR commented May 8, 2026

This pull request introduces improvements to the file transfer workflow and user interface, focusing on better status tracking for file uploads/downloads and enhanced accessibility and styling for file offer actions. The main changes are grouped below.

File Transfer Workflow Enhancements:

  • Added a new `fileDownloadCompleted event to the WebRTC communication services and interfaces, allowing the sender to be notified when a file download is completed by the receiver. This enables accurate upload completion tracking. [1] [2] [3]
  • Updated the file download service to send a FILE_DOWNLOAD_COMPLETE message to the sender after successful download, and updated the upload service to finalize and clean up transfers only after this confirmation. [1] [2] [3] [4]
  • Changed the upload service to set the transfer phase to 'finalizing' after all chunks are sent, and only mark the upload as completed after receiver confirmation, improving reliability and status accuracy. [1] [2] [3]

User Interface and Accessibility Improvements:

  • Redesigned the file offer accept/decline buttons with new styles for better visual clarity and accessibility, including improved focus states and responsive design for mobile. [1] [2] [3]
  • Updated all relevant translations to include the new "Decline" action and a "Finalizing..." status message for file transfers in English, Spanish, French, Russian, Arabic, and Chinese. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

Other:

  • Minor code cleanup in the WebSocket connection service error handling for clarity.

These changes together improve the reliability and user experience of file transfers in the chat application.

SloMR added 4 commits May 8, 2026 22:22
- Added 'Decline' translations to multiple languages.
- Improved UI for accept/decline file actions with better styling.
- Enhanced accessibility with aria-labels and translations.
- Removed redundant debug logging to streamline code.
- Optimized progress calculation by removing unnecessary parameters.
- Improved UI by simplifying progress bar logic.
- Adds status tracking for file download completion.
- Updates UI to reflect transfer finalizing phase.
- Supports multi-language translations for new status.
- Enhances progress bar updates for smoother transitions.
@SloMR SloMR self-assigned this May 8, 2026
Copilot AI review requested due to automatic review settings May 8, 2026 21:14
@SloMR SloMR added enhancement New feature or request dependencies Pull requests that update a dependency file labels May 8, 2026
@SloMR SloMR added this to PastePoint May 8, 2026
@SloMR SloMR added typescript Pull requests that update TypeScript code translation Update for the translations client Changes made for the Client side UI UI changes labels May 8, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR improves the chat app’s file-transfer UX and reliability by adding a receiver-to-sender “download completed” confirmation signal, refining upload progress phases, and updating the file-offer UI and translations.

Changes:

  • Added a FILE_DOWNLOAD_COMPLETE WebRTC message + fileDownloadCompleted$ event to confirm receiver completion and allow sender-side upload finalization.
  • Updated upload/download services and sidebar UI to support a new upload phase (e.g., “Finalizing…”) and display progress more safely.
  • Refreshed file-offer accept/decline actions (styling + accessibility) and added translations for “Decline” / “Finalizing…”, plus dependency lockfile bumps.

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
client/web/src/app/utils/constants.ts Adds FILE_DOWNLOAD_COMPLETE message type and FileUpload.phase union for UI state.
client/web/src/app/features/chat/components/chat-sidebar/chat-sidebar.component.ts Simplifies progress helpers and removes logger/unused imports.
client/web/src/app/features/chat/components/chat-sidebar/chat-sidebar.component.html Shows “Finalizing…” based on upload phase and tweaks progress bar transitions.
client/web/src/app/features/chat/components/chat-messages/chat-messages.component.html Restyles accept/decline actions, adds translated labels/title/aria, and button types.
client/web/src/app/features/chat/components/chat-messages/chat-messages.component.css Introduces new .file-offer-action styles with focus states and mobile behavior.
client/web/src/app/core/services/file-management/file-upload.service.ts Tracks upload phase and completes upload only after receiver confirmation event.
client/web/src/app/core/services/file-management/file-transfer.service.ts Subscribes to fileDownloadCompleted$ to finalize uploads on sender side.
client/web/src/app/core/services/file-management/file-download.service.ts Sends FILE_DOWNLOAD_COMPLETE message after assembling and initiating download.
client/web/src/app/core/services/communication/websocket-connection.service.ts Minor cleanup: removes unused error event parameter.
client/web/src/app/core/services/communication/webrtc.service.ts Exposes fileDownloadCompleted$ from the communication service.
client/web/src/app/core/services/communication/webrtc-communication.service.ts Handles incoming FILE_DOWNLOAD_COMPLETE messages and emits fileDownloadCompleted$.
client/web/src/app/core/interfaces/webrtc.interface.ts Extends interface with fileDownloadCompleted$.
client/web/src/app/core/i18n/localizations/en.json Adds DECLINE and FINALIZING_TRANSFER strings.
client/web/src/app/core/i18n/localizations/es.json Adds DECLINE and FINALIZING_TRANSFER strings.
client/web/src/app/core/i18n/localizations/fr.json Adds DECLINE and FINALIZING_TRANSFER strings.
client/web/src/app/core/i18n/localizations/ru.json Adds DECLINE and FINALIZING_TRANSFER strings.
client/web/src/app/core/i18n/localizations/ar.json Adds DECLINE and FINALIZING_TRANSFER strings.
client/web/src/app/core/i18n/localizations/zh-CN.json Adds DECLINE and FINALIZING_TRANSFER strings.
client/web/package-lock.json Updates lockfile dependency versions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@SloMR SloMR merged commit 19f3a73 into main May 8, 2026
23 checks passed
@SloMR SloMR deleted the feat/EnhanceDownloadButtons branch May 8, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client Changes made for the Client side dependencies Pull requests that update a dependency file enhancement New feature or request translation Update for the translations typescript Pull requests that update TypeScript code UI UI changes

Projects

Status: done

Development

Successfully merging this pull request may close these issues.

2 participants