Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
277 commits
Select commit Hold shift + click to select a range
92acef3
Merge pull request #10 from Evently-Event-Management/limit-intergration
dpiyumal2319 Aug 4, 2025
5d248b9
Initial Core details page done
dpiyumal2319 Aug 5, 2025
c0f9b5f
Implement Create Event Page with Wizard Navigation and Fixed Sidebar
dpiyumal2319 Aug 5, 2025
c6a4592
Refactor Event Details Card to use Select dropdown for Category selec…
dpiyumal2319 Aug 5, 2025
fa0e45e
Remove venue
dpiyumal2319 Aug 6, 2025
d826798
Merge pull request #12 from Evently-Event-Management/removing-venue
dpiyumal2319 Aug 6, 2025
989f1f8
Implement Tiers and Pricing step in Create Event wizard
dpiyumal2319 Aug 6, 2025
270979e
Refactor event schema to use UUID validation for organization and cat…
dpiyumal2319 Aug 6, 2025
81cd18f
depr
dpiyumal2319 Aug 6, 2025
3b20777
Add Scheduling step to Create Event wizard with date and time picker
dpiyumal2319 Aug 6, 2025
9fa85c1
Add Tabs and Badge components; enhance SchedulingStep with location a…
dpiyumal2319 Aug 6, 2025
32f7acb
Add session configuration dialogs and enhance event creation with tim…
dpiyumal2319 Aug 6, 2025
79c3c99
Enhance LocationConfigDialog with Google Maps integration for venue s…
dpiyumal2319 Aug 6, 2025
5e75334
Refactor SessionListItem and LocationConfigDialog for improved prop h…
dpiyumal2319 Aug 7, 2025
bf64c22
Refactor SettingsPanel for improved code formatting and readability
dpiyumal2319 Aug 7, 2025
c2ad00f
Add seating configuration for event sessions with online and physical…
dpiyumal2319 Aug 7, 2025
34b2b48
Implemented tier assignment
dpiyumal2319 Aug 7, 2025
ddf5199
Add functionality to apply selected tier to all seats in a seated block
dpiyumal2319 Aug 7, 2025
b94e000
Dialog to page
dpiyumal2319 Aug 7, 2025
8f398b9
Hide next buttons
dpiyumal2319 Aug 7, 2025
914ec23
Refactor seating step component and fix import paths
dpiyumal2319 Aug 7, 2025
8f056c2
Add update functionality for seating layout templates and improve pro…
dpiyumal2319 Aug 7, 2025
277e7b2
Add delete functionality for seating layout templates and improve loa…
dpiyumal2319 Aug 7, 2025
893bbc9
Add navigation buttons, layout selector, and delete confirmation dial…
dpiyumal2319 Aug 7, 2025
52b1c29
Update PhysicalConfigView component structure and modify default coun…
dpiyumal2319 Aug 7, 2025
23b8be2
Refactor tier assignment handling and enhance navigation buttons with…
dpiyumal2319 Aug 7, 2025
67056ae
Enhance tier assignment functionality by transforming layout data and…
dpiyumal2319 Aug 7, 2025
dec53aa
Fix
dpiyumal2319 Aug 7, 2025
e2d7269
Refactor DraggableBlock and LayoutEditor components for improved butt…
dpiyumal2319 Aug 7, 2025
9ed34bc
Update blockSchema to allow nullable capacity, width, and height fields
dpiyumal2319 Aug 7, 2025
6b2e84c
Allow nullable name in session seating map and enhance layout handlin…
dpiyumal2319 Aug 7, 2025
f09f8aa
Add layoutData handling for session configuration in LocationConfigDi…
dpiyumal2319 Aug 7, 2025
b834bd2
Refactor layout template saving logic to use async/await and improve …
dpiyumal2319 Aug 8, 2025
eb33342
Enhance event management UI with seating configuration and ticket car…
dpiyumal2319 Aug 8, 2025
f6eab5f
Add ReviewStep component and integrate it into the event creation flow
dpiyumal2319 Aug 8, 2025
e6e6b51
Fix marker position handling in LocationConfigDialog to respect sessi…
dpiyumal2319 Aug 8, 2025
fe2711d
Refactor session handling in LocationConfigDialog to improve online s…
dpiyumal2319 Aug 8, 2025
42d6316
Add approval dialog to event submission process and enhance session h…
dpiyumal2319 Aug 8, 2025
a0f30c9
Refactor session seating map types and update related components for …
dpiyumal2319 Aug 8, 2025
ba5b69f
Add event details page and enhance event management with new components
dpiyumal2319 Aug 9, 2025
a688125
Add review components for event details and sessions, and update even…
dpiyumal2319 Aug 9, 2025
35cb77f
Add Accordion component with trigger and content subcomponents
dpiyumal2319 Aug 9, 2025
87545bc
Refactor session handling to use SessionType enum and update venue de…
dpiyumal2319 Aug 9, 2025
b78807c
Enhance Event Details Page with Review Components and Update Event Sc…
dpiyumal2319 Aug 9, 2025
8783c6d
Reorder category display in ReviewEventHero component for improved UX
dpiyumal2319 Aug 9, 2025
0a48e96
Enhance ReviewStep and ReviewSessions components with tier data integ…
dpiyumal2319 Aug 10, 2025
ebacf9f
Update src/lib/validators/event.ts
dpiyumal2319 Aug 10, 2025
0487ebd
Update src/lib/validators/event.ts
dpiyumal2319 Aug 10, 2025
8ed2bb3
Update src/lib/validators/event.ts
dpiyumal2319 Aug 10, 2025
0aa2159
Update src/lib/validators/event.ts
dpiyumal2319 Aug 10, 2025
20fef77
Update src/app/manage/organization/[organization_id]/event/_component…
dpiyumal2319 Aug 10, 2025
f30c456
Merge pull request #19 from Evently-Event-Management/copilot-let's-go-UX
dpiyumal2319 Aug 10, 2025
fe1e034
Fix Google Maps API key handling in SeatingInformation component
dpiyumal2319 Aug 10, 2025
dd4e362
Refactor event review components and implement admin route protection
dpiyumal2319 Aug 10, 2025
29969c5
Refactor event and organization actions to use user-specific endpoint…
dpiyumal2319 Aug 10, 2025
e3a74f8
Refactor event details page components to use user-specific organizat…
dpiyumal2319 Aug 10, 2025
b13af0c
Enhance event management by adding 'COMPLETED' status, improving API …
dpiyumal2319 Aug 10, 2025
dc589a8
Update API base URL and refactor session layout types to use SessionS…
dpiyumal2319 Aug 10, 2025
d5b92c9
Add admin console link and user tier display in sidebar and topbar
dpiyumal2319 Aug 11, 2025
c7d2514
Refactor SessionListItemReview component to comment out unused code a…
dpiyumal2319 Aug 11, 2025
059e5a1
Update next.config.ts to include additional remote image patterns and…
dpiyumal2319 Aug 11, 2025
c164fb1
Merge pull request #20 from Evently-Event-Management/11-front-end-cre…
dpiyumal2319 Aug 11, 2025
f853418
Add support for separate sales start date and time selection in sessi…
dpiyumal2319 Aug 17, 2025
f30c4d7
Update next.config.ts to add localstack hostname for event seating up…
dpiyumal2319 Aug 17, 2025
5473b8d
Add seating information and layout components; update next.config.ts …
dpiyumal2319 Aug 17, 2025
19c8bfe
Refactor LocationConfigDialog and SeatingInformation components to us…
dpiyumal2319 Aug 17, 2025
3a5bb05
Refactor LocationConfigDialog and ReviewSessions components to use dy…
dpiyumal2319 Aug 17, 2025
8d92f0f
Enhance OrganizationsPage component with additional organization deta…
dpiyumal2319 Aug 17, 2025
a1d45a0
Add event and category management features; implement category fetchi…
dpiyumal2319 Aug 18, 2025
170c0fa
Add event session management; implement session fetching, enhance eve…
dpiyumal2319 Aug 18, 2025
bfa1922
Refactor session-related types and components; rename salesStartRuleT…
dpiyumal2319 Aug 18, 2025
31ba9b5
Add seat status summary component and implement resizable layout for …
dpiyumal2319 Aug 18, 2025
61a7d14
Add date range filtering for event sessions; implement DatePicker com…
dpiyumal2319 Aug 24, 2025
3c83a27
Ensure fresh Date objects for session start and sales start times; up…
dpiyumal2319 Aug 25, 2025
92eba88
Enhance seating information and layout components; update seat counti…
dpiyumal2319 Aug 25, 2025
0d6a85f
Add CLOSED status to session enums; enhance standing capacity block r…
dpiyumal2319 Aug 25, 2025
d1308fd
Refactor event review layout; implement sticky ticket action panel an…
dpiyumal2319 Aug 25, 2025
0c067c4
Refactor event components; update imports, enhance EventCard layout, …
dpiyumal2319 Aug 25, 2025
a8acf43
Add sales start time to session model; update related components to d…
dpiyumal2319 Aug 26, 2025
3043b4c
Rename eventServerActions to eventActions; implement getEventSummery …
dpiyumal2319 Aug 26, 2025
0d989a8
Add seating layout components and enhance session booking; implement …
dpiyumal2319 Aug 26, 2025
baabff4
Added scroll area
dpiyumal2319 Aug 26, 2025
09949f0
Add image compression for logo and cover photo uploads; update price …
dpiyumal2319 Aug 26, 2025
b11a6ff
Add button type attribute to carousel navigation buttons
dpiyumal2319 Aug 26, 2025
79e5a8f
Implement real-time seat status updates via SSE; add SeatStatusUpdate…
dpiyumal2319 Aug 26, 2025
ee6a49a
Enhance seat status updates with SSE; implement updateSeatStatuses fu…
dpiyumal2319 Aug 26, 2025
796bf16
Refactor seat selection management to use seat IDs; improve SSE handl…
dpiyumal2319 Aug 26, 2025
cae2542
Refactor seat status update handling to support seats in rows and dir…
dpiyumal2319 Aug 26, 2025
ae3982c
Update UI text and improve layout styles; modify discount code messag…
dpiyumal2319 Aug 27, 2025
3347abe
Implement order creation functionality; add order confirmation dialog…
dpiyumal2319 Aug 27, 2025
88dd58d
Refactor seat display in order confirmation and selection summary; in…
dpiyumal2319 Aug 27, 2025
d5190f0
Fix casing of event ID in order creation request; update related refe…
dpiyumal2319 Aug 27, 2025
28cecfe
Add warning badge variant and improve seat status handling; refactor …
dpiyumal2319 Aug 28, 2025
6afedb5
Add staff management functionality; implement invite staff feature an…
dpiyumal2319 Aug 28, 2025
5deb16a
Implement staff management page; add functionality to invite and remo…
dpiyumal2319 Aug 28, 2025
9d1e881
Refactor image upload handling; improve code formatting and readabili…
dpiyumal2319 Aug 28, 2025
7357ba8
Refactor image upload handling; improve code formatting and readabili…
dpiyumal2319 Aug 28, 2025
af6e216
Refactor order-related identifiers; update sessionId and seatIds to s…
dpiyumal2319 Aug 29, 2025
ba9b055
Refactor order API path; update API_BASE_PATH in orderActions and cha…
dpiyumal2319 Aug 29, 2025
1d7e216
Refactor order response structure; update identifiers to snake_case a…
dpiyumal2319 Aug 29, 2025
b7f7b4d
Refactor SeatingStep component; implement dialog for applying seating…
dpiyumal2319 Aug 29, 2025
ad8e64d
Refactor global styles; introduce new slate theme with improved contr…
dpiyumal2319 Aug 29, 2025
e99e75b
Refactor pricing display; update currency to LKR and enhance event fi…
dpiyumal2319 Aug 29, 2025
6595d1b
Refactor HomePage component; update layout and styles for improved us…
dpiyumal2319 Aug 29, 2025
2708022
Refactor page layout; update styles and colors for improved visual hi…
dpiyumal2319 Aug 29, 2025
7e3b55b
Refactor HomePage component; add authentication logic and update layo…
dpiyumal2319 Aug 29, 2025
aa8fa61
Refactor HomePage component; add authentication logic and update layo…
dpiyumal2319 Sep 1, 2025
2ac8c0d
Refactor event filtering components; simplify logic, enhance UI, and …
dpiyumal2319 Sep 2, 2025
9bf898b
Enhance CategoryFilterBar; add scroll chevrons, improve scroll visibi…
dpiyumal2319 Sep 2, 2025
d37ab39
Refactor seating components; improve layout, enhance accessibility, a…
dpiyumal2319 Sep 2, 2025
b93680f
Add Google Analytics dependency; update .env for API base URL
dpiyumal2319 Sep 2, 2025
8bc7104
Add event analytics and tracking components; implement Google Analyti…
dpiyumal2319 Sep 3, 2025
57309ec
Refactor event-related identifiers; update eventId to event_id for co…
dpiyumal2319 Sep 3, 2025
51405a7
Enhance event analytics; add sessionStatus to occupancy DTO and updat…
dpiyumal2319 Sep 3, 2025
8f4dfd9
Add event analytics components; implement SessionAnalyticsView and Ti…
dpiyumal2319 Sep 3, 2025
272617a
Add Chart components; implement ChartContainer, ChartTooltip, and Cha…
dpiyumal2319 Sep 3, 2025
0679c6c
Add SeatStatusCard component; refactor seat status logic and improve …
dpiyumal2319 Sep 3, 2025
e07ea92
Add toggle functionality to SeatStatusCard and TierSalesChart; implem…
dpiyumal2319 Sep 3, 2025
2eb88db
Refactor event analytics components; replace getEventViews with getEv…
dpiyumal2319 Sep 3, 2025
ac269c0
Add AI overview generation functionality; implement GenerateOverviewR…
dpiyumal2319 Sep 3, 2025
01edd69
Add GeminiMarkdownEditor component; implement AI overview generation …
dpiyumal2319 Sep 3, 2025
c9151db
Enhance GeminiMarkdownEditor; add custom commands for editing, live, …
dpiyumal2319 Sep 3, 2025
27f3d36
Enhance event preview and details; add description to ReviewEventHero…
dpiyumal2319 Sep 3, 2025
2167ff3
Refactor event components; rename ReviewEventDetails to EventOverview…
dpiyumal2319 Sep 3, 2025
7247aa0
Merge pull request #22 from Evently-Event-Management/analytics
dpiyumal2319 Sep 3, 2025
38533c8
Enhance analytics components; add TierDistributionChart for tier sale…
dpiyumal2319 Sep 3, 2025
ea4755d
Update SeatStatusChart; change color for booked status to improve vis…
dpiyumal2319 Sep 4, 2025
f1e770a
Refactor organization layout and tier step components; remove unused …
dpiyumal2319 Sep 6, 2025
a484b6a
Enhance category fetching functions; add error handling and timeout t…
dpiyumal2319 Sep 6, 2025
383d3ac
Added singleton pattern to keycloak object
dpiyumal2319 Sep 10, 2025
17add4e
Added singleton pattern to keycloak object
dpiyumal2319 Sep 10, 2025
dcd1787
Added validations for core details step
dpiyumal2319 Sep 16, 2025
22d255c
Enhance event creation UX by improving validation and restructuring s…
dpiyumal2319 Sep 16, 2025
4022e0d
Enhance event creation UX by adding sales start rule type validation;…
dpiyumal2319 Sep 17, 2025
11cd756
Enhance event creation UX by improving layout and accessibility; add …
dpiyumal2319 Sep 17, 2025
7e14f61
Refactor SessionListItem and WizardProgressBar components for improve…
dpiyumal2319 Sep 17, 2025
4c949b7
Enhance event creation UX by adding seating data types and improving …
dpiyumal2319 Sep 17, 2025
5737d76
Enhance LayoutEditor UX by adding toolbox placement option; refactor …
dpiyumal2319 Sep 17, 2025
4c284b1
Enhance LayoutEditor and PhysicalConfigView UX by adding className an…
dpiyumal2319 Sep 17, 2025
85c5ab7
Enhance PhysicalConfigView by streamlining seating layout template cr…
dpiyumal2319 Sep 17, 2025
65fcd02
Enhance TierAssignmentEditor by simplifying seat status and tier assi…
dpiyumal2319 Sep 17, 2025
a295141
Enhance event validation by enforcing tier assignment for seats; ensu…
dpiyumal2319 Sep 17, 2025
0c0c983
Enhance Create Event UX by expanding layout width for better visibili…
dpiyumal2319 Sep 17, 2025
5f4ef6c
Enhance validation schema typing for Create Event form steps; ensure …
dpiyumal2319 Sep 17, 2025
ee92f61
Refactor session data handling by removing sales start rule type from…
dpiyumal2319 Sep 17, 2025
cf81bec
Update src/types/enums/salesStartRuleType.ts
dpiyumal2319 Sep 18, 2025
2fa40f0
Update src/types/enums/salesStartRuleType.ts
dpiyumal2319 Sep 18, 2025
39b0b1f
Merge pull request #25 from Evently-Event-Management/24-enhance-creat…
dpiyumal2319 Sep 18, 2025
a129e0f
Add discount type enum and schemas for discount parameters in event h…
dpiyumal2319 Sep 18, 2025
9ce3bbe
Add discount code form and list components with session and tier sele…
dpiyumal2319 Sep 18, 2025
af07bd2
Add discount management components and update event form schemas
dpiyumal2319 Sep 18, 2025
7f24558
Update discount code form and session/tier selectors to handle defaul…
dpiyumal2319 Sep 18, 2025
48dc710
Enhance discount management: add editing capabilities, improve date h…
dpiyumal2319 Sep 19, 2025
4efb6cc
Add DiscountCard component and integrate it into DiscountList for imp…
dpiyumal2319 Sep 19, 2025
7cd1a83
Enhance discount code form validation: add error messages and ensure …
dpiyumal2319 Sep 19, 2025
3204f36
Refactor maxUsage field handling in discount code form: use Controlle…
dpiyumal2319 Sep 19, 2025
9177612
Add filters prop to DiscountList component and conditionally render f…
dpiyumal2319 Sep 19, 2025
bc7d3d6
Refactor discount-related components and schemas: update data types t…
dpiyumal2319 Sep 19, 2025
901f4e7
Update discount currency handling: change currency to LKR in Discount…
dpiyumal2319 Sep 19, 2025
afd7343
Update tier price display to use LKR currency format in TierSelector …
dpiyumal2319 Sep 19, 2025
e90deb8
Add filters prop to DiscountList component and conditionally render f…
dpiyumal2319 Sep 21, 2025
a8335b3
Refactor discount handling: update discount type access and improve p…
dpiyumal2319 Sep 26, 2025
476207e
New event thumbnail
dpiyumal2319 Sep 26, 2025
ba5eecc
Refactor discount sorting logic: prioritize BOGO discounts over perce…
dpiyumal2319 Sep 26, 2025
49e987d
Enhance EventCard component: improve discount rendering and add toolt…
dpiyumal2319 Sep 26, 2025
9372cef
Enhance EventCard component: update Badge styling for better visibili…
dpiyumal2319 Sep 26, 2025
5f4aade
Enhance discount handling: add optional minSpend and maxDiscount para…
dpiyumal2319 Sep 29, 2025
8e9802a
Refactor discount properties: rename isActive and isPublic to active …
dpiyumal2319 Sep 29, 2025
a3fff37
Add OffersCarousel and OfferCard components for displaying discounts
dpiyumal2319 Sep 30, 2025
dc73e25
Refactor OfferCard component: simplify structure by removing unnecess…
dpiyumal2319 Sep 30, 2025
93db9a0
Add discount utility functions and update event types for discount ha…
dpiyumal2319 Sep 30, 2025
ca3552b
Implement discount functionality: add discount code input, apply disc…
dpiyumal2319 Sep 30, 2025
5c4de59
Fix display of applied discount code in SelectionSummary component
dpiyumal2319 Sep 30, 2025
91f4b05
Add DiscountDialog and DiscountDisplayCard components for applying di…
dpiyumal2319 Sep 30, 2025
821ecf6
Refactor SelectionSummary component: integrate DiscountDialog for app…
dpiyumal2319 Sep 30, 2025
c2452bd
Enhance discount handling: update DiscountDisplayCard for better UI f…
dpiyumal2319 Oct 1, 2025
3c82d14
compact design
dpiyumal2319 Oct 1, 2025
07b63db
Refactor discount components: update DiscountDialog and DiscountDispl…
dpiyumal2319 Oct 2, 2025
188ec40
Enhance discount components: update DiscountDialog for improved error…
dpiyumal2319 Oct 2, 2025
44888fc
Enhance discount functionality: initialize discount code from URL in …
dpiyumal2319 Oct 2, 2025
b9fa7db
Enhance discount display: add discount section in SessionItem, implem…
dpiyumal2319 Oct 2, 2025
4327dc4
Refactor discount code properties: rename 'isActive' to 'active' and …
dpiyumal2319 Oct 3, 2025
857fa53
Merge pull request #26 from Evently-Event-Management/discount-creation
dpiyumal2319 Oct 3, 2025
3e006ca
Enhance discount code handling: add clean-build script to package.jso…
dpiyumal2319 Oct 4, 2025
328d8a6
Refactor discount code fetching: replace fetch with apiFetch in getDi…
dpiyumal2319 Oct 4, 2025
377281d
Enhance DiscountDialog and DiscountDisplayCard: add animation for loa…
dpiyumal2319 Oct 4, 2025
01f4f28
Merge pull request #27
dpiyumal2319 Oct 4, 2025
39de603
UX
dpiyumal2319 Oct 4, 2025
8a28673
Refactor discount calculation logic: adjust discount application to c…
dpiyumal2319 Oct 4, 2025
2d4e55a
Update .gitignore: add rule to ignore Copilot files
dpiyumal2319 Oct 4, 2025
a83b192
Refactor discount handling: replace DiscountParsed with DiscountReque…
dpiyumal2319 Oct 4, 2025
107fb12
Refactor event-related types: replace parsed types with request types…
dpiyumal2319 Oct 4, 2025
5bb0070
Add EventProvider for managing event and organization data across com…
dpiyumal2319 Oct 4, 2025
19ca34f
Refactor EventProvider: integrate organization context and switch org…
dpiyumal2319 Oct 4, 2025
96ed8af
Pre implemeted discount crud
dpiyumal2319 Oct 4, 2025
4d1633e
Add DiscountFormDialog component for creating and editing discounts
dpiyumal2319 Oct 5, 2025
24b6301
Refactor Discount components to use IDs instead of indices for CRUD o…
dpiyumal2319 Oct 5, 2025
6d6cfc0
Add sharing functionality for discounts with new DiscountShareDialog …
dpiyumal2319 Oct 5, 2025
b254b56
Enhance DiscountCard with confirmation dialog for deletion and improv…
dpiyumal2319 Oct 5, 2025
e3c556f
Add usage progress bar and improve discount details display in Discou…
dpiyumal2319 Oct 5, 2025
8e44f94
Refactor EventProvider to manage discounts and improve discount fetch…
dpiyumal2319 Oct 5, 2025
e9451fd
Update event schemas to use UUIDs for IDs and adjust seat generation …
dpiyumal2319 Oct 5, 2025
a24872e
Implement session management features with SessionsManager and Sessio…
dpiyumal2319 Oct 6, 2025
5b90b3d
Add session management functions to EventProvider and SessionsManager
dpiyumal2319 Oct 6, 2025
a6c7927
Add session management functions to EventProvider and SessionsManager
dpiyumal2319 Oct 7, 2025
a484328
Add redirect functionality for creating new sessions in SessionsManager
dpiyumal2319 Oct 7, 2025
1df43d8
Refactor session creation UI by removing Card component and integrati…
dpiyumal2319 Oct 7, 2025
53a54c4
Add SessionCard and SessionShareDialog components for session managem…
dpiyumal2319 Oct 7, 2025
f57718e
Refactor discount-related components to use DTOs instead of request t…
dpiyumal2319 Oct 7, 2025
9d2525f
Enhance session page with status handling and tooltips for session type
dpiyumal2319 Oct 7, 2025
78b9b0b
Refactor session action types and add layout update functionality
dpiyumal2319 Oct 7, 2025
78afa65
Add LocationEditDialog component for managing venue details in sessions
dpiyumal2319 Oct 7, 2025
55cab69
Merge branch 'main' of https://github.com/Evently-Event-Management/fe…
Muniya-64bit Oct 7, 2025
2e65dae
Add PhysicalLayoutEditor and VenueMap components for enhanced event s…
dpiyumal2319 Oct 7, 2025
a67186e
feat: add OnlineConfigEditorBase component for managing online event …
dpiyumal2319 Oct 7, 2025
3f0cb6e
feat: add dialogs for editing session time, layout, location, and sta…
dpiyumal2319 Oct 7, 2025
8797aea
feat: add components for session management including seating layout,…
dpiyumal2319 Oct 7, 2025
5fb21f8
feat: enhance session management components with improved layout and …
dpiyumal2319 Oct 7, 2025
6d63618
feat: implement EditLayoutPage for managing session seating layout an…
dpiyumal2319 Oct 8, 2025
d0c6b56
feat: enhance ChangeStatusDialog with detailed status information and…
dpiyumal2319 Oct 8, 2025
15eef95
feat: add dialog open state management to VenueInformation and Locati…
dpiyumal2319 Oct 8, 2025
e2d960f
feat: refactor venue update handling and remove unused map center logic
dpiyumal2319 Oct 8, 2025
2e5dfcf
feat: add discount management UI components and enhance session statu…
dpiyumal2319 Oct 8, 2025
1ab3328
feat: enhance discount management components with shareable functiona…
dpiyumal2319 Oct 8, 2025
ca074d9
feat: add discountedTotal field to baseDiscountSchema for improved di…
dpiyumal2319 Oct 8, 2025
9afb740
feat: implement event update actions with cover photo management and …
dpiyumal2319 Oct 8, 2025
eeb7866
feat: enhance event settings page with cover photo management and for…
dpiyumal2319 Oct 8, 2025
e0074fb
feat: add category selection to event settings and implement event de…
dpiyumal2319 Oct 8, 2025
7f2eef4
feat: enhance error handling with custom ApiError class and improve t…
dpiyumal2319 Oct 9, 2025
ae91b39
feat: add DailySalesChart component and integrate revenue analytics i…
dpiyumal2319 Oct 9, 2025
835dc89
feat: add revenue analytics fetching and integrate into SessionAnalyt…
dpiyumal2319 Oct 9, 2025
354a585
feat: add discount analytics components and integrate into DiscountMa…
dpiyumal2319 Oct 9, 2025
fd956f9
feat: enhance session and event analytics with tier sales metrics and…
dpiyumal2319 Oct 9, 2025
1f6fc2e
feat: implement session performance grid and card components for enha…
dpiyumal2319 Oct 9, 2025
1f1674f
feat: remove EventTracker component from layout for cleaner event ove…
dpiyumal2319 Oct 9, 2025
6322fdb
feat: update text formatting in DailySalesChart and clean up imports …
dpiyumal2319 Oct 9, 2025
e1a461a
feat: integrate AI-powered event overview generation and enhance imag…
dpiyumal2319 Oct 9, 2025
19c0b4f
feat: add order management components and enhance order details display
dpiyumal2319 Oct 9, 2025
f42ce55
Add GitHub Actions workflow for Node.js CI
dpiyumal2319 Oct 9, 2025
80a2065
feat: implement tier management functionality with create, update, an…
dpiyumal2319 Oct 10, 2025
4c58884
feat: restore tier creation and update functionality with proper API …
dpiyumal2319 Oct 10, 2025
4720435
feat: add CounterAnimation component and integrate total sessions and…
dpiyumal2319 Oct 10, 2025
69772b3
feat: simplify ticket sold value calculation in analytics views
dpiyumal2319 Oct 10, 2025
ee65ab6
Merge pull request #29 from Evently-Event-Management/28-add-ui-for-cr…
dpiyumal2319 Oct 10, 2025
6e62d29
payment method
Muniya-64bit Oct 10, 2025
aa5ae20
Merge branch 'main' of https://github.com/Evently-Event-Management/fe…
Muniya-64bit Oct 10, 2025
790058d
updated gitignore
Muniya-64bit Oct 10, 2025
ca5fefd
Remove .env from tracking and update gitignore
Muniya-64bit Oct 10, 2025
2f7fb9a
Merge remote-tracking branch 'origin/main' into payment_stripe
dpiyumal2319 Oct 10, 2025
dcf2d1f
feat: enhance order and ticket models, integrate Stripe dependencies,…
dpiyumal2319 Oct 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
262 changes: 243 additions & 19 deletions package-lock.json

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"lucide-react": "^0.525.0",
"next": "15.4.3",
"next-themes": "^0.4.6",
"qrcode": "^1.5.4",
"react": "19.1.0",
"react-day-picker": "^9.8.1",
"react-dom": "19.1.0",
Expand All @@ -64,6 +65,7 @@
"recharts": "^2.15.4",
"rehype-raw": "^7.0.0",
"sonner": "^2.0.6",
"stripe": "^19.1.0",
"tailwind-merge": "^3.3.1",
"use-debounce": "^10.0.5",
"zod": "^4.0.14"
Expand All @@ -73,6 +75,7 @@
"@tailwindcss/postcss": "^4",
"@types/leaflet": "^1.9.20",
"@types/node": "^20",
"@types/qrcode": "^1.5.5",
"@types/react": "^19",
"@types/react-dom": "^19",
"@types/react-resizable": "^3.0.8",
Expand Down
16 changes: 15 additions & 1 deletion src/app/(home-app)/_components/Topbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import Link from 'next/link'
import {useAuth} from '@/providers/AuthProvider'
import {Ticket, ShieldCheck} from 'lucide-react'
import {Ticket, ShieldCheck, Receipt} from 'lucide-react'
import {Button} from '@/components/ui/button'
import {
DropdownMenu,
Expand Down Expand Up @@ -37,6 +37,14 @@ export default function Topbar() {
<ModeToggle/>
{isAuthenticated ? (
<>
<Link href={`/orders`} className="hidden lg:inline-flex">
<Button variant="ghost"
className="flex items-center gap-2 text-primary/80 hover:text-primary text-md">
<Receipt className="size-4 mr-1"/>
My Orders
</Button>
</Link>

<Link href={`/manage/organization`} className="hidden lg:inline-flex">
<Button variant="ghost"
className="flex items-center gap-2 text-primary/80 hover:text-primary text-md">
Expand Down Expand Up @@ -80,6 +88,12 @@ export default function Topbar() {
{/* </div>*/}
{/*)}*/}
<DropdownMenuSeparator/>
<DropdownMenuItem asChild>
<Link href="/orders" className="flex items-center gap-2">
<Receipt className="size-4"/>
My Orders
</Link>
</DropdownMenuItem>
{userIsAdmin && (
<>
<DropdownMenuItem asChild>
Expand Down
426 changes: 426 additions & 0 deletions src/app/(home-app)/orders/page.tsx

Large diffs are not rendered by default.

171 changes: 171 additions & 0 deletions src/components/ApiQRCodeModal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
'use client';

import { useState } from 'react';
import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { Download, Copy, CheckCircle, QrCode } from 'lucide-react';
import { ApiTicket } from '@/types/order';
import Image from 'next/image';

interface ApiQRCodeModalProps {
ticket: ApiTicket | null;
isOpen: boolean;
onClose: () => void;
}

export const ApiQRCodeModal = ({ ticket, isOpen, onClose }: ApiQRCodeModalProps) => {
const [copied, setCopied] = useState(false);

const handleCopyTicketId = async () => {
if (ticket) {
await navigator.clipboard.writeText(ticket.ticket_id);
setCopied(true);
setTimeout(() => setCopied(false), 2000);
}
};

const handleDownloadQR = () => {
if (ticket && ticket.qr_code) {
try {
// Create a data URL from the base64 encoded QR code
const qrDataUrl = `data:image/png;base64,${ticket.qr_code}`;

// Create a temporary link and download the image
const link = document.createElement('a');
link.download = `ticket-${ticket.ticket_id.slice(-8)}-qr.png`;
link.href = qrDataUrl;
link.click();
} catch (error) {
console.error('Error downloading QR code:', error);
}
}
};

if (!ticket) return null;

// Create data URL for the QR code image
const qrCodeUrl = ticket.qr_code ? `data:image/png;base64,${ticket.qr_code}` : null;

return (
<Dialog open={isOpen} onOpenChange={onClose}>
<DialogContent className="sm:max-w-md">
<DialogHeader>
<DialogTitle className="flex items-center gap-2">
<QrCode className="h-5 w-5" />
<span>Ticket QR Code</span>
</DialogTitle>
</DialogHeader>

<div className="space-y-6">
{/* Ticket Info */}
<div className="text-center space-y-2">
<h3 className="font-semibold text-lg">Seat {ticket.seat_label}</h3>
<p className="text-muted-foreground">{ticket.tier_name} Tier</p>
<div className="flex justify-center items-center gap-2 text-sm">
<div
className="w-3 h-3 rounded-full border"
style={{ backgroundColor: ticket.colour.toLowerCase() }}
></div>
<span>{ticket.colour}</span>
</div>
<div className="text-sm">
Price: ${ticket.price_at_purchase.toFixed(2)}
</div>
</div>

{/* QR Code */}
<div className="flex justify-center">
{qrCodeUrl ? (
<div className="p-4 bg-white rounded-lg border">
<Image
src={qrCodeUrl}
alt="Ticket QR Code"
width={192}
height={192}
className="w-48 h-48"
/>
</div>
) : (
<div className="w-48 h-48 bg-gray-100 rounded-lg flex items-center justify-center">
<span className="text-gray-500">QR Code not available</span>
</div>
)}
</div>

{/* Ticket ID */}
<div className="space-y-2">
<label className="text-sm font-medium">Ticket ID</label>
<div className="flex items-center gap-2">
<code className="flex-1 p-2 bg-muted rounded text-sm font-mono">
{ticket.ticket_id}
</code>
<Button
variant="outline"
size="sm"
onClick={handleCopyTicketId}
className="flex items-center gap-1"
>
{copied ? (
<>
<CheckCircle className="h-4 w-4" />
Copied
</>
) : (
<>
<Copy className="h-4 w-4" />
Copy
</>
)}
</Button>
</div>
</div>

{/* Status Info */}
<div className="p-3 bg-muted rounded-lg">
<div className="flex items-center justify-between text-sm">
<span>Status:</span>
<span className={`font-medium ${ticket.checked_in ? 'text-blue-600' : 'text-green-600'}`}>
{ticket.checked_in ? 'Used' : 'Valid'}
</span>
</div>
<div className="flex items-center justify-between text-sm mt-1">
<span>Issued:</span>
<span>{new Date(ticket.issued_at).toLocaleDateString()}</span>
</div>
{ticket.checked_in && ticket.checked_in_time !== "0001-01-01T00:00:00Z" && (
<div className="flex items-center justify-between text-sm mt-1">
<span>Checked in:</span>
<span>{new Date(ticket.checked_in_time).toLocaleString()}</span>
</div>
)}
</div>

{/* Actions */}
<div className="flex gap-2">
<Button
variant="outline"
onClick={handleDownloadQR}
disabled={!qrCodeUrl}
className="flex-1"
>
<Download className="h-4 w-4 mr-2" />
Download QR
</Button>
<Button
onClick={onClose}
className="flex-1"
>
Close
</Button>
</div>

{/* Instructions */}
<div className="text-xs text-muted-foreground text-center space-y-1">
<p>Present this QR code at the event entrance</p>
<p>Keep this ticket until after the event</p>
</div>
</div>
</DialogContent>
</Dialog>
);
};
142 changes: 142 additions & 0 deletions src/components/OrderDebugView.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
'use client';

import { useState } from 'react';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { ChevronDown, ChevronUp, Code } from 'lucide-react';

// Use a safer approach with explicit type casting
interface OrderDebugViewProps {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
order: any; // Using any here is justified for a debugging component
orderId: string;
}

export const OrderDebugView = ({ order, orderId }: OrderDebugViewProps) => {
const [isExpanded, setIsExpanded] = useState(false);

if (!order) {
return (
<Card className="mt-6 border-dashed border-gray-300">
<CardHeader className="pb-2">
<CardTitle className="text-sm flex items-center justify-between">
<div className="flex items-center">
<Code className="h-4 w-4 mr-2" />
<span>Order Data</span>
</div>
<span className="text-xs bg-yellow-100 text-yellow-800 px-2 py-1 rounded-full">No Data</span>
</CardTitle>
</CardHeader>
<CardContent className="pt-0 text-sm">
<p>No order data available for ID: {orderId}</p>
</CardContent>
</Card>
);
}

return (
<Card className="mt-6 border-dashed border-gray-300">
<CardHeader className="pb-2">
<CardTitle className="text-sm flex items-center justify-between">
<div className="flex items-center">
<Code className="h-4 w-4 mr-2" />
<span>Order Data</span>
</div>
<Button
variant="ghost"
size="sm"
onClick={() => setIsExpanded(!isExpanded)}
className="h-6 px-2"
>
{isExpanded ? (
<ChevronUp className="h-4 w-4 mr-1" />
) : (
<ChevronDown className="h-4 w-4 mr-1" />
)}
{isExpanded ? 'Hide' : 'Show'} Details
</Button>
</CardTitle>
</CardHeader>
{isExpanded && (
<CardContent className="pt-0">
<div className="bg-gray-50 dark:bg-gray-900 p-3 rounded-md overflow-auto max-h-96">
<pre className="text-xs whitespace-pre-wrap break-words">
{JSON.stringify(order, null, 2)}
</pre>
</div>
</CardContent>
)}
<CardContent className="pt-0 pb-3">
<div className="grid grid-cols-2 gap-2 text-sm">
<div>
<span className="font-medium">Order ID:</span>
<div className="font-mono text-xs truncate">{String(order.OrderID || orderId)}</div>
</div>
<div>
<span className="font-medium">Status:</span>
<div className={`text-xs ${getStatusColor(order.Status)}`}>
{order.Status ? String(order.Status) : 'Unknown'}
</div>
</div>
<div>
<span className="font-medium">User:</span>
<div className="text-xs truncate">{order.UserID ? String(order.UserID) : 'N/A'}</div>
</div>
<div>
<span className="font-medium">Amount:</span>
<div className="text-xs">
{typeof order.Price === 'number'
? `$${order.Price.toFixed(2)}`
: 'N/A'}
</div>
</div>
<div>
<span className="font-medium">Event:</span>
<div className="text-xs truncate">{order.EventID ? String(order.EventID) : 'N/A'}</div>
</div>
<div>
<span className="font-medium">Session:</span>
<div className="text-xs truncate">{order.SessionID ? String(order.SessionID) : 'N/A'}</div>
</div>
{order.CreatedAt && typeof order.CreatedAt === 'string' && (
<div>
<span className="font-medium">Created:</span>
<div className="text-xs">
{new Date(order.CreatedAt).toLocaleString()}
</div>
</div>
)}
{order.SeatIDs && (
<div className="col-span-2">
<span className="font-medium">Seats:</span>
<div className="text-xs">
{Array.isArray(order.SeatIDs) ?
// eslint-disable-next-line @typescript-eslint/no-explicit-any
order.SeatIDs.map((seat: any) => String(seat)).join(', ') :
'N/A'}
</div>
</div>
)}
</div>
</CardContent>
</Card>
);
};

// Helper function to get color based on status
function getStatusColor(status: unknown): string {
if (!status || typeof status !== 'string') return 'text-gray-500';

switch(status.toLowerCase()) {
case 'completed':
return 'text-white';
case 'pending':
return 'text-amber-500';
case 'cancelled':
return 'text-red-500';
case 'expired':
return 'text-gray-500';
default:
return 'text-gray-500';
}
}
Loading