Feat: Enhance file transfer UI, translations, and progress tracking#197
Merged
Conversation
- 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.
Contributor
There was a problem hiding this comment.
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_COMPLETEWebRTC 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
FILE_DOWNLOAD_COMPLETEmessage 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]'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:
Other:
These changes together improve the reliability and user experience of file transfers in the chat application.