302 Commits

Author SHA1 Message Date
Felipe Cardoso
991fd0356a Add InfoCard component to display customizable card layouts
Introduced a reusable InfoCard component with support for a variety of props including images, colors, text, and buttons. This component enhances flexibility and consistency in displaying card-based UI elements across the application.
2025-03-14 11:45:34 +01:00
Felipe Cardoso
41464f8bea Style adjustments 2025-03-14 11:18:10 +01:00
Felipe Cardoso
c82d80bc4c Refactor asset image handling in event theme form.
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 49s
Ensure asset_image_urls are merged instead of replaced during updates. Add a useEffect hook to log theme assets when editing an existing theme. These changes improve data handling consistency and debugging clarity.
2025-03-14 05:10:02 +01:00
Felipe Cardoso
9bf8025389 Remove debug console log from image uploader component
Commented out a leftover console log statement used for debugging. This cleans up the code and prevents unnecessary logging in the production environment.
2025-03-14 05:09:56 +01:00
Felipe Cardoso
382df4f83f Enhance invitation page with theme-based design and features
This update integrates theme-based styling and assets for the invitation page, including dynamic colors, fonts, and images. Added features include improved loading states, detailed event information, RSVP handling, gift registry, and interactive map functionality. This refactor enhances the user experience and supports event-specific personalization.
2025-03-14 05:03:15 +01:00
Felipe Cardoso
3862fdb1ad Add date-fns dependency to the frontend project
Added date-fns version 4.1.0 to package.json and package-lock.json. This introduces date utility functions, enabling easier date manipulations and formatting across the frontend. No functional changes yet, just preparing for future use.
2025-03-14 05:03:09 +01:00
Felipe Cardoso
9d13760b5f Add refetchThemes function to event theme context and usage
Some checks failed
Build and Push Docker Images / changes (push) Successful in 5s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 50s
Introduce a new `refetchThemes` function in the event theme context to allow for refreshing event theme data. Update `EventThemeForm` to call `refetchThemes` after updating a theme, ensuring the data stays synchronized. This enhances the consistency of the UI after changes to event themes.
2025-03-14 04:43:29 +01:00
Felipe Cardoso
0fa298ef4b Fix syntax error by removing extraneous semicolon
Removed an unnecessary semicolon within the JSX structure to adhere to proper syntax rules. This change prevents potential rendering issues and maintains consistency with the codebase style.
2025-03-14 03:55:46 +01:00
Felipe Cardoso
c580effb52 Display event theme details on the event detail page
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 49s
Added functionality to show event theme information, including name, description, and preview image, on the event detail page. Integrated `useEventThemes` context and updated utility function `getServerFileUrl` to handle nullable URLs.
2025-03-14 03:33:19 +01:00
Felipe Cardoso
4c6b97c9be Format event date as DD.MM.YYYY on the dashboard.
Updated the event date formatting logic to display dates in the DD.MM.YYYY format (used in the RSVP section). This improves consistency and aligns with user expectations for date representation.
2025-03-14 03:19:40 +01:00
Felipe Cardoso
33c3a03d19 Set RSVP deadline to date-only format in event form.
This ensures that the RSVP deadline value is always stored and displayed as a date-only string. It prevents issues with time components affecting the form's behavior and improves consistency across the app.
2025-03-14 03:16:57 +01:00
Felipe Cardoso
c7120b84b6 Simplify event date initialization in event form.
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 49s
Ensure the event date is formatted to 'YYYY-MM-DD' when pre-filling the form. This prevents potential issues with date handling and improves consistency in date rendering.
2025-03-14 03:15:38 +01:00
Felipe Cardoso
08ad83a872 Format event date and time consistently.
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 48s
Updated event date to use "DD.MM.YYYY" format and replaced time formatting logic with substring extraction for improved simplicity and consistency. This ensures a cleaner and more localized display of event information.
2025-03-14 03:09:40 +01:00
Felipe Cardoso
b18f684afb Fix incorrect timezone assignment in event_date validator
Updated the validation logic to correctly replace the timezone for `event_date`. This ensures proper handling of datetime objects without tzinfo.
2025-03-14 03:09:31 +01:00
Felipe Cardoso
74d37fc54c Add "Edit" button to event details page
Introduced an "Edit" button in the event details header for improved user access to editing event information. This button uses a link with an outline variant and includes an icon for better visual context. The layout was adjusted to accommodate the new button while preserving responsiveness.
2025-03-14 03:06:39 +01:00
Felipe Cardoso
e50fca4e77 Fix timezone handling for RSVP deadline validation
Updated the RSVP deadline validation to automatically assign UTC as the timezone if none is provided, ensuring consistency. This prevents errors and enforces proper timezone-aware datetime usage.
2025-03-14 03:02:51 +01:00
Felipe Cardoso
3e12a47e1d Add event editing page with delete functionality
This commit introduces a new page for editing events at the route `dashboard/events/[slug]/edit`. It includes features for loading event details, updating event data via a form, and a confirmation dialog for deleting events. Error handling and loading states are also implemented.
2025-03-14 03:02:46 +01:00
Felipe Cardoso
a49411d62d Add AlertDialog and Select UI components using Radix primitives
This commit introduces reusable AlertDialog and Select UI components built with Radix UI primitives, enabling consistent UI patterns in the project. Necessary dependencies for these components have been added to the package.json and package-lock.json files.
2025-03-14 02:56:20 +01:00
Felipe Cardoso
fa5daa605c Refactor event creation page to use reusable EventForm component
Replaced inlined event creation logic on `CreateEventPage` with a new reusable `EventForm` component. This decouples the form functionality, improves modularity, and enables future reuse for editing events. Enhanced validation and added support for event themes and additional settings within `EventForm`.
2025-03-14 02:55:59 +01:00
Felipe Cardoso
a5ce709e9e Enable hard delete option for event theme deletion
Updated the delete mutation to include a `hard_delete` query parameter. This ensures themes are permanently removed when deleted. The change improves clarity and control over deletion behavior.
2025-03-14 02:24:01 +01:00
Felipe Cardoso
ea91511ae5 Add delete theme functionality to Edit Theme page
Introduced a delete button to the Edit Theme page, allowing users to delete themes with a confirmation prompt. Upon deletion, users are redirected to the event themes dashboard. Updated relevant imports and added a handler for the delete action.
2025-03-14 02:23:53 +01:00
Felipe Cardoso
41eb631a5e Remove leading slash from 'uploads/' checks in theme URLs
Updated conditions to check 'uploads/' without a leading slash across preview, background, foreground, and asset image URLs. This ensures consistent handling of URLs during the relocation process and avoids potential mismatches in the path string comparison.
2025-03-14 02:23:44 +01:00
Felipe Cardoso
d2e71feb69 Refactor file relocation logic for theme-specific files.
All checks were successful
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Successful in 49s
Build and Push Docker Images / build-frontend (push) Has been skipped
Updated the file relocation function to use `settings.DATA_FILES_DIR` for theme folders and improved filename handling by prefixing with the file type. Adjusted logic to handle URLs consistently and ensure paths are properly resolved. This enhances maintainability and organizes theme files more effectively.
2025-03-14 02:22:21 +01:00
Felipe Cardoso
3244fd8beb Update grid layout, refetch interval, and image handling
Adjusted the grid column behavior for medium screens in event themes and commented out unused badge rendering. Updated the image uploader to handle `existingImage` using the server URL and added debugging output. Modified the event theme context to use a fixed refetch interval of 60 seconds.
2025-03-14 02:00:41 +01:00
Felipe Cardoso
b7a9e3f981 Enable automatic refetching for event theme queries
Added `refetchOnWindowFocus` and `refetchIntervalInBackground` options to the event theme query. This ensures data stays updated when switching tabs or in the background.
2025-03-14 01:46:10 +01:00
Felipe Cardoso
187f52bbe0 Update image URL handling and edit link in Event Themes
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 49s
Replaced direct `preview_image_url` usage with `getServerFileUrl` for consistent file URL handling. Updated the "Edit Theme" button to navigate to the `/edit` path for improved routing clarity.
2025-03-14 01:33:57 +01:00
Felipe Cardoso
996727aa13 Remove unused Cancel button in ImageUploader component
The Cancel button was commented out as it is no longer needed. This simplifies the UI and reduces potential confusion for users. Future iterations can reintroduce it if necessary functionality is added.
2025-03-14 01:31:56 +01:00
Felipe Cardoso
9c4d0f97dc Refactor asset uploader layout and improve UI components
Updated the layout to use a responsive grid for displaying assets and separated CardHeader for better organization. Simplified the asset input and image uploader components while improving responsiveness and styling consistency. Removed redundant code and added enhancements for a cleaner and more user-friendly UI.
2025-03-14 01:30:10 +01:00
Felipe Cardoso
3d26c0f982 Update image URL logic in ImageUploader component
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 49s
Replace direct `fileUrl` usage with `getServerFileUrl` utility for consistent server URL formatting. Remove unnecessary fallback logic to streamline image selection.
2025-03-14 01:18:14 +01:00
Felipe Cardoso
aaa7c68c12 Refactor file upload to use generated upload mutation
Replaced direct SDK file upload calls with generated React Query mutations for better progress tracking and error handling. Streamlined logic for obtaining presigned URLs and uploading files, ensuring consistency and maintainability. Removed redundant code and improved state management during the upload process.
2025-03-14 01:17:13 +01:00
Felipe Cardoso
0afdbc973c Enable remote image loading in Next.js configuration
Added support for loading images from pragmazest.com and localhost. This allows flexibility for handling remote images during development and production. Adjustments align with application requirements for external asset management.
2025-03-14 01:17:07 +01:00
Felipe Cardoso
058b2b3c73 Move constants, add API URL, and implement file URL helper
Relocated common constants to a new "lib/constants" directory for better organization. Added BACKEND_API_URL constant to manage API base URL dynamically. Introduced a utility function `getServerFileUrl` to generate file URLs using the backend API.
2025-03-14 01:17:02 +01:00
Felipe Cardoso
ffdf095eee Refactor file URL handling to use relative paths.
Updated file URL generation to return relative paths instead of absolute paths, ensuring better portability and consistency. Adjusted relevant methods to compute paths relative to the base directory.
2025-03-14 01:16:50 +01:00
Felipe Cardoso
b47dbaeb0b Refactor file upload to use SDK instead of XMLHttpRequest
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Successful in 50s
Build and Push Docker Images / build-frontend (push) Failing after 47s
Replaced manual XMLHttpRequest implementation with the SDK's `uploadFile` method for handling file uploads to presigned URLs. This simplifies the code, leverages built-in features like progress tracking, and improves error handling. Added token extraction and upload progress updates to maintain functionality.
2025-03-14 00:05:26 +01:00
Felipe Cardoso
0cf5498762 Refactor storage URL retrieval to use get_uploaded_file_url.
Some checks failed
Build and Push Docker Images / build-frontend (push) Blocked by required conditions
Build and Push Docker Images / changes (push) Successful in 3s
Build and Push Docker Images / build-backend (push) Has been cancelled
Replaced calls to get_file_url with get_uploaded_file_url where appropriate. Added the get_uploaded_file_url method to the StorageProvider class and its implementations for more specific URL generation. Updated corresponding tests and API routes to reflect this change.
2025-03-14 00:05:07 +01:00
Felipe Cardoso
8c1e6b7ebe Refactor forms and uploader components UI with Card layout
Some checks failed
Build and Push Docker Images / changes (push) Successful in 5s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 49s
Updated color, font, and asset forms to use Card and CardContent for improved structure and consistency. Enhanced input styles and hover effects for better user experience. Adjusted the image uploader background for a more cohesive design.
2025-03-13 16:04:54 +01:00
Felipe Cardoso
4044d85410 Add components and hooks for event theme management
Some checks failed
Build and Push Docker Images / changes (push) Successful in 5s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 49s
Introduced the `usePresignedUpload` hook for file uploads and multiple components for event theme management, including form handling, asset uploads, and UI enhancements. These additions support creating, editing, and managing event themes effectively.
2025-03-13 08:36:20 +01:00
Felipe Cardoso
f2f8d85775 Update link in event themes page to correct path
Fixed the href value in the "Create Your First Theme" button to point to the correct `/dashboard/event-themes/new` route. This ensures proper navigation and resolves potential routing issues.
2025-03-13 08:36:11 +01:00
Felipe Cardoso
d9e9a88ea1 Add @radix-ui/react-progress to dependencies
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Has been cancelled
Included @radix-ui/react-progress (v1.1.2) in package.json and package-lock.json. This addition introduces progress components, enhancing the UI toolkit. Updated related peer and optional dependencies accordingly.
2025-03-13 08:35:38 +01:00
Felipe Cardoso
0449291caf Refactor file upload and presigned URL types and method names
Simplify and standardize type and function names for uploadFile and generatePresignedUrl operations. This change improves readability and aligns naming conventions across the codebase. No functional behavior was altered.
2025-03-13 07:51:19 +01:00
Felipe Cardoso
b46533b18f Add operation_id to upload endpoints for improved OpenAPI docs
The `operation_id` field was added to the `generate_presigned_url` and `upload_file` endpoints. This enhances the OpenAPI documentation by providing unique identifiers for better API clarity and client generation.
2025-03-13 07:51:13 +01:00
Felipe Cardoso
6397cfae49 Add support for generating and uploading files via presigned URLs
Some checks failed
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Has been skipped
Build and Push Docker Images / build-frontend (push) Failing after 48s
Introduces schemas, types, and API endpoints for managing file uploads using presigned URLs. Includes request and response models, React Query hooks, and client SDK functionality for generating and consuming presigned URLs.
2025-03-13 07:34:53 +01:00
Felipe Cardoso
03f643895d Add comprehensive test cases for theme creation API
All checks were successful
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Successful in 50s
Build and Push Docker Images / build-frontend (push) Has been skipped
Implemented various tests to validate the theme creation process, including tests for successful creation, validation failures, image relocation, large data handling, and error scenarios such as database issues. Introduced mock dependencies to simulate behaviors like file relocation and database operations. Ensured all edge cases are covered to improve robustness and reliability.
2025-03-13 07:32:22 +01:00
Felipe Cardoso
0eabd9e5dd Refactor theme creation and update for file management
All checks were successful
Build and Push Docker Images / changes (push) Successful in 5s
Build and Push Docker Images / build-backend (push) Successful in 52s
Build and Push Docker Images / build-frontend (push) Has been skipped
Enhanced theme creation and update logic to include proper file organization by relocating and managing URLs for images and assets. Introduced roles validation to restrict access to superusers for these operations. Updated tests to align with the refactored logic and dependencies.
2025-03-12 21:16:49 +01:00
Felipe Cardoso
9fdf8971e3 Add function to relocate theme files in storage
Introduce `_relocate_theme_file` to handle moving files to theme-specific directories in the storage system. This ensures better organization of uploaded files by associating them with a theme ID and file type, improving maintainability and structure.
2025-03-12 21:16:42 +01:00
Felipe Cardoso
2993d0942c Add presigned URL and file upload functionality
All checks were successful
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Successful in 51s
Build and Push Docker Images / build-frontend (push) Has been skipped
Implemented endpoints for generating presigned URLs and handling file uploads. Added corresponding test cases to ensure proper functionality and error handling. Updated the main router to include the new uploads API.
2025-03-12 18:59:39 +01:00
Felipe Cardoso
e50fdb66df Add schemas for presigned URL requests and responses
Introduced two Pydantic models: `PresignedUrlRequest` and `PresignedUrlResponse`. These define the request and response structures for presigned URL generation, including fields for filenames, content types, and expiration details. This provides a clear contract for handling presigned URL functionality.
2025-03-12 18:59:27 +01:00
Felipe Cardoso
00c5af9cc6 Add file utility functions for filename and path handling
Introduce helper functions to generate unique filenames, create date-based storage paths, and validate image content types. These utilities centralize and streamline file-related operations for consistency and reusability.
2025-03-12 18:59:22 +01:00
Felipe Cardoso
38acdb78a1 Add storage utilities and tests for file handling and tokens
All checks were successful
Build and Push Docker Images / changes (push) Successful in 5s
Build and Push Docker Images / build-backend (push) Successful in 51s
Build and Push Docker Images / build-frontend (push) Has been skipped
Introduced new fixtures and tests for storage functionality, including saving files, generating URLs, and token creation/verification. Refactored `get_storage_provider` into a separate dependency module. Enhanced test coverage for improved reliability.
2025-03-12 18:50:30 +01:00
Felipe Cardoso
9879353ac1 Refactor storage to rename base_dir to upload_folder.
Renamed `base_dir` to `upload_folder` for better clarity and alignment with its purpose. Adjusted references and settings variable to reflect the updated naming convention. This enhances code readability and consistency.
2025-03-12 18:37:16 +01:00