- Introduced a comprehensive download memory management system to handle large file downloads efficiently, preventing crashes and optimizing resource usage.
- Added configuration options for maximum concurrent downloads, memory thresholds, and queue sizes, allowing for adaptive scaling based on system resources.
- Implemented new API endpoints for managing the download queue, including status checks and cancellation of queued downloads.
- Updated documentation to include details on the new memory management features and their configuration.
- Enhanced user experience by integrating download queue indicators in the UI, providing real-time feedback on download status and estimated wait times.
- Introduced new translation keys for bulk delete confirmation and description placeholders across various language files, enhancing user experience by providing clearer instructions.
- Updated the file and share modals to utilize the new translation keys for improved consistency and localization.
- Introduced translations for the QR code sharing modal in various languages including Arabic, German, Spanish, French, Hindi, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Russian, Turkish, and Chinese.
- Removed duplicate QR code modal entries from the respective language files to maintain consistency.
- Added "namePlaceholder" to share creation modals across multiple languages for improved user guidance.
- Updated error messages in various languages to maintain consistency and clarity.
- Introduced "filesQueued" message for better user feedback during file uploads in multiple languages.
- Added a new configuration option for enabling/disabling password authentication.
- Implemented validation to prevent disabling password authentication if no other authentication providers are active.
- Updated authentication and login services to handle scenarios based on the password authentication setting.
- Enhanced the UI to reflect the password authentication status and provide user feedback accordingly.
- Added translations and error messages for better user experience across multiple languages.
- Added new translations for QR code interactions in various languages.
- Updated share link details to include options for viewing and downloading QR codes.
- Enhanced user experience by providing clear instructions and descriptions related to QR code usage.
- Improved consistency in UI components for QR code visibility and actions.
- Added QR code viewing and downloading capabilities in the reverse shares section.
- Updated UI components to include QR code options in share details and cards.
- Introduced new state management for handling QR code visibility.
- Enhanced translations for QR code interactions across multiple languages.
- Added a new ImageEditModal component for cropping and adjusting images.
- Integrated image editing capabilities into the ProfilePicture component, allowing users to edit their profile images.
- Updated translations for image editing features in multiple languages.
- Introduced a Skeleton component for loading states during image processing.
- Enhanced file upload handling with chunked uploads for better performance.
- Added lastUsedAt timestamp to the TrustedDevice model for tracking device usage.
- Implemented new endpoints for retrieving and removing trusted devices.
- Updated AuthService to manage trusted devices, including methods for getting and removing devices.
- Enhanced the user interface to support trusted device management, including modals for removing devices.
- Added translations for new messages related to trusted devices in multiple languages.
- Changed the title from "Receber Arquivos" to "Recevoir des Fichiers" and updated the description to "Créez des liens pour que d'autres puissent vous envoyer des fichiers" for better localization accuracy.
- Translated SMTP connection test messages in French and Polish for better localization.
- Removed unused icon imports in the two-factor verification and profile components to streamline the code.
- Simplified user data extraction in the login hook for clarity and consistency.
- Added two-factor authentication support to the login process, enhancing security for user accounts.
- Introduced new routes and services for managing 2FA setup, verification, and backup codes.
- Updated user model to include fields for 2FA status and backup codes.
- Enhanced login and profile pages to accommodate 2FA input and management.
- Added translations for 2FA-related messages in multiple languages.
- Integrated QR code generation for 2FA setup, improving user experience during authentication.
- Updated the SMTP configuration section to include new fields for trusting self-signed certificates and advanced connection security options.
- Improved the documentation structure by adding subsections for basic SMTP configuration, email sender configuration, and advanced options.
- Introduced a testing feature for SMTP connections, detailing the process and expected outcomes for users.
- Removed outdated images and added new visuals to better illustrate the configuration steps and user interface elements.
- Enhanced translations for various languages to support the new SMTP features.
- Modified titles for Auth0, Authentik, Discord, Frontegg, GitHub, Google, Kinde Auth, and Zitadel documentation to include "Provider Configuration" for improved clarity and consistency.
- Enhanced the Frontegg documentation with additional images and detailed setup instructions to aid user understanding.
- Introduced new images for Kinde Auth setup, showcasing application details and configuration steps.
- Updated the Auth0, Discord, GitHub, and Google authentication documentation to include detailed setup instructions and benefits of using each provider.
- Introduced ZoomableImage components for better visual representation of setup steps.
- Added troubleshooting sections for common issues encountered during authentication processes.
- Improved security best practices and next steps for users configuring OIDC providers.
- Included new images for various authentication providers to enhance user understanding.
- Updated translation files to support new icon picker features and improve localization.
- Introduced a new "total" label in various language translation files for storage usage.
- Updated the StorageUsage component to display the total storage size alongside the progress bar.
- Improved layout and styling in the QuickAccessCards component for better visual consistency.
- Introduced a new GlobalDropZone component to handle file drag-and-drop uploads, enhancing user experience.
- Updated dashboard and files pages to utilize the GlobalDropZone, allowing users to easily upload files by dragging them into designated areas.
- Added support for pasting images directly into the application, with success notifications for completed uploads.
- Enhanced localization by adding relevant messages for various languages in the translation files.
- Modified ESLint and Next.js configuration files for improved code quality and performance.
- Updated package.json and pnpm-lock.yaml to reflect dependency changes and ensure compatibility.
- Added new translations for multiple languages, enhancing localization support across the application.
- Cleaned up unused or deprecated model files in the HTTP endpoints, streamlining the codebase.
- Added new UI components for managing authentication providers, including forms for adding, editing, and deleting providers.
- Integrated drag-and-drop functionality for reordering providers in the settings interface.
- Enhanced user experience with modals for confirming deletions and displaying callback URLs.
- Updated translation files to include new keys for authentication provider management, ensuring localization support.
- Refactored existing components to streamline the integration of new provider management features.
- Introduced a new AuthProvider model in the database schema to manage external authentication providers.
- Added routes and controllers for handling authentication provider operations, including creation and management.
- Updated the seeding script to include initial data for authentication providers.
- Enhanced the login and registration forms to support multiple authentication providers, improving user experience.
- Removed the deprecated OIDC functionality and updated related UI components and settings.
- Updated translation files to reflect changes in authentication terminology and settings.
- Improved error handling and logging for authentication processes.
- Added bulk download functionality for files in the PublicSharePage, allowing users to download multiple files as a ZIP.
- Introduced new success and error messages for file deletion and password protection updates, improving user feedback.
- Updated translation files to include new keys for bulk download, file deletion, and password protection messages, enhancing localization support.
- Improved UI components to accommodate new features and ensure a seamless user experience.
- Implemented a new endpoint for testing SMTP connections, allowing administrators to validate SMTP settings before saving.
- Added a method in the EmailService to handle SMTP connection testing, utilizing either provided or saved configurations.
- Introduced a new UI component for testing SMTP connections within the settings, enhancing user experience with real-time feedback.
- Updated translation files to include new keys and messages related to SMTP testing across multiple languages.
- Implemented bulk selection functionality for files in the ReceivedFilesModal, allowing users to select multiple files for actions such as download, copy, and delete.
- Added UI elements for bulk actions, including a dropdown menu for selecting actions and confirmation dialogs for deletion.
- Enhanced user experience by providing feedback during bulk operations and clearing selections after successful actions.
- Localized new messages for bulk actions across multiple languages to ensure consistent user feedback.
- Introduced new field requirements for name and email in the ReverseShare model, allowing for configurations of "HIDDEN", "OPTIONAL", or "REQUIRED".
- Updated the Create and Update schemas to include these new fields, ensuring proper validation and handling in the UI.
- Enhanced the file upload section to conditionally require name and email based on the new settings, improving user experience.
- Localized new messages for field requirements across multiple languages, ensuring consistent user feedback.
- Added a script to clean up translation files, addressing issues with multiple prefixes in translation keys.
- Added a new translation management system to automate synchronization, validation, and translation of internationalization files.
- Introduced scripts for running translation operations, including checking status, synchronizing keys, and auto-translating strings.
- Updated package.json with new translation-related commands for easier access.
- Enhanced localization files across multiple languages with new keys and improved translations.
- Integrated download functionality for share files in the UI, allowing users to download multiple files seamlessly.
- Refactored components to support new download features and improved user experience.
- Improved the uploadSmallFile method to handle various request body types (buffer, string, object, stream) more effectively.
- Added error handling for unsupported request body types.
- Implemented JSON file preview capability in FilePreviewModal, allowing users to view formatted JSON content.
- Updated localization files to include "retry" messages in multiple languages for better user experience during upload errors.
- Modified the login schema to accept either an email or username for user authentication.
- Updated the AuthService to find users by email or username.
- Adjusted localization files to include new labels and placeholders for email or username input across multiple languages.
- Refactored the login form component to reflect the changes in the schema and improve user experience.
- Enhanced localization files for various languages by adding loading states and detailed error messages related to storage information retrieval.
- Updated translations for "available" and included new keys for "loading," "retry," and various error scenarios to improve user experience during storage operations.
- Updated localization files for multiple languages to include new strings related to reverse share features, improving user experience.
- Introduced new components for managing reverse share details, including editable fields and sections for received files.
- Enhanced existing modals with improved layouts and functionality for better user interaction during reverse share operations.
- Improved error handling and user feedback throughout the reverse share process.
- Introduced OIDC authentication support with new OIDCService, controller, and routes for handling OIDC login and callback processes.
- Updated user management functionalities to integrate OIDC, allowing users to authenticate via external providers.
- Enhanced localization files to include new strings related to OIDC authentication across multiple languages.
- Refactored existing components and hooks to support the new authentication flow, improving user experience during login and registration processes.
- Added new UI components for handling OIDC login and callback, ensuring a seamless integration with the existing application structure.
- Updated localization files for multiple languages to include new strings related to file sharing and management.
- Enhanced the FileSelector component to support additional features such as file descriptions, search functionality, and improved user feedback.
- Refactored action button titles and placeholder texts to utilize localized strings for better user experience.
- Improved the display of file counts and selection statuses in the file selector interface.
- Introduced ShareSecurityModal and ShareExpirationModal components to manage share security and expiration settings.
- Updated SharesModals and SharesTable components to integrate new modals for managing security and expiration.
- Enhanced ShareManager to handle updates for security and expiration settings.
- Improved localization files to include new strings related to share security and expiration across multiple languages.
- Refactored existing components to support the new functionality, improving user experience in managing shared items.
- Added bulk delete confirmation modal to enhance user experience when deleting multiple shares.
- Integrated bulk delete actions in the shares table, allowing users to select and delete multiple shares at once.
- Updated ShareManager to handle bulk delete operations and manage selected shares state.
- Enhanced localization files to include new strings related to bulk delete actions across multiple languages.
- Added a new slider component for audio playback control, improving user interaction with audio files.
- Implemented a custom audio player to support audio file previews within the file preview modal.
- Introduced a files view manager to toggle between table and grid views for better file organization.
- Updated localization files to include new strings related to audio playback and file management across multiple languages.
- Enhanced the recent files component to utilize the new dashboard files view for improved user experience.
- Added support for file descriptions in sharing modals, allowing users to provide additional context when sharing files.
- Implemented bulk sharing functionality, enabling users to share multiple files at once with a single action.
- Enhanced file management capabilities with new modals for bulk downloads and deletions, improving user experience.
- Updated localization files to include new strings related to file sharing and management across multiple languages.
- Improved the file manager to handle bulk actions and state management more effectively.
- Updated localization files for multiple languages to improve user experience with file previews and uploads.
- Enhanced the FilePreviewModal component to support video, audio, and PDF previews with blob loading for better performance.
- Implemented a confirmation modal for canceling ongoing uploads, providing users with clearer options during the upload process.
- Improved file upload handling with better state management and user feedback during uploads.
- Added ShareFileModal component to facilitate file sharing with customizable options.
- Integrated sharing functionality into RecentFiles and FileList components, allowing users to share files directly.
- Updated file manager to handle file sharing state and actions.
- Enhanced localization files to include new share-related strings across multiple languages.
- Added a new FileSizeInput component to handle file size configurations in a user-friendly manner.
- Updated SettingsInput to integrate the FileSizeInput for maxFileSize and maxTotalStoragePerUser settings.
- Revised environment schema to remove MAX_FILESIZE validation, ensuring flexibility in configuration.
- Adjusted localization files to remove byte references in descriptions for clarity across multiple languages.
- Added missing title for SMTP notifications in the French localization file.
- Reformatted the Portuguese localization file to improve structure and readability by aligning keys and values properly.
- Modified JSON files for multiple languages to replace template syntax from `{{variable}}` to `{variable}` for consistency across localization strings.
- Ensured that all relevant keys in the files for Arabic, German, Spanish, French, Hindi, Japanese, Korean, Portuguese, Russian, Turkish, and Chinese reflect this change, enhancing maintainability and readability.
I implemented a new API Endpoint /files/check that is queried before trying to upload the file to the MinIO backend.
This prevents the current issue where files exceeding the maximum file size would be uploaded to the storage backend but then fail to get registered, resulting in "dead" data invisible in the frontend but stored in the backend.
Additionally I added new toast notifications for the following errors that can happen while checking if the file is valid:
- filesizeExceeded: Displays a toast that the file is too large and shows the current MAX_FILESIZE
- insufficientStorage: Displays a toast with the error that not enough storage is available together with the currently available storage
- unauthorized: Displays a toast saying that the token is invalid