Skip to content

Commit 1e628da

Browse files
chiptusclaude
andauthored
feat: csv import page (#22)
* feat: add CSV preview with validation before import - Add StagesPreviewTable to show parsed stages data - Add SetsPreviewTable with time format validation - Parse CSV immediately on file selection to show preview - Validate time_start and time_end formats using existing timeUtils - Show validation errors inline in preview table - Display valid/invalid count badges in preview header - Highlight invalid rows with background color - Clear preview when import completes or dialog closes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * feat: import view * feat: simplify CSV import - remove conflict resolution - Remove complex conflict detection and resolution system - Delete CSVImportDialog, ImportConflictResolver, conflictDetector, artistResolver, useMergeSets - Auto-detect user's timezone as default - Simplify CSVImportPage to single view without dialogs - Clean up all imports and unused code - Prepare for inline artist selection in preview table Next step: Add artist dropdowns and set matching to preview table 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * feat: add artist matching and set detection to CSV import - Created setMatcher service for detecting matching sets by artists/edition - Fixed query to use left joins instead of inner joins for better results - Added useMatchingSetsQuery hook for react-query data loading - Refactored SetsPreviewTable into modular components: - SetPreviewRow: handles individual row rendering - ArtistSelectionCell: manages multiple artist selections - ArtistSelect: reusable select component for artist matching - StageCellWithValidation: displays stage with error messages - TimeCellWithValidation: displays time with error messages - MatchingSetCell: displays matching set information - Artist selector shows all artists with exact match highlighting (✓) - Users can select existing artists or create new ones from CSV - Updated setImporter to accept artist mappings and create artists as needed - Fixed artist creation to use added_by field instead of created_by - Wired up artist selections in CSVImportPage with proper state management 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * refactor: optimize loading * feat: add inline set selection with match/duplicate/create options * feat: allow selecting any set from edition in CSV import - Auto-select first matching set by default - Add dropdown to select from all sets in edition (matching + other sets) - Display sets grouped by matching/other with vote counts and stage info - Fetch stage names in set queries for better UX * show detailed errors * feat: improve CSV import - set selection, error display, and stage handling - Auto-select first matching set by default in CSV import - Allow selecting from all sets in edition (matching + other sets grouped) - Display sets with vote counts and stage info for better selection - Add ImportResults component to show detailed error messages in UI - Update stage_id when matching or duplicating sets during import - Extend duplicateSetWithVotes to accept stage_id and description parameters * duplicate sets with hours and stage * fix: remove group_id from duplicate_set_with_votes and add optional params - Remove group_id column reference (doesn't exist in votes table) - Add optional new_stage_id and new_description parameters - Use COALESCE to fall back to source set values if not provided - Add grants for both old and new function signatures * match sets * fix function * remove lovable --------- Co-authored-by: Claude <[email protected]>
1 parent c843f7e commit 1e628da

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+5671
-7824
lines changed

deno.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

index.html

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,10 @@
1414
content="UpLine - Your Festival companion"
1515
/>
1616
<meta property="og:type" content="website" />
17-
<meta
18-
property="og:image"
19-
content="https://lovable.dev/opengraph-image-p98pqg.png"
20-
/>
17+
<meta property="og:image" content="/getupline.png" />
2118

2219
<meta name="twitter:card" content="summary_large_image" />
23-
<meta name="twitter:site" content="@lovable_dev" />
24-
<meta
25-
name="twitter:image"
26-
content="https://lovable.dev/opengraph-image-p98pqg.png"
27-
/>
20+
<meta name="twitter:image" content="/getupline.png" />
2821
</head>
2922

3023
<body>

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"@radix-ui/react-toggle": "^1.1.0",
5757
"@radix-ui/react-toggle-group": "^1.1.0",
5858
"@radix-ui/react-tooltip": "^1.1.4",
59-
"@supabase/supabase-js": "^2.50.0",
59+
"@supabase/supabase-js": "^2.81.1",
6060
"@tailwindcss/line-clamp": "^0.4.4",
6161
"@tanstack/query-async-storage-persister": "^5.86.0",
6262
"@tanstack/react-query": "^5.56.2",
@@ -114,7 +114,7 @@
114114
"oxlint": "^1.11.1",
115115
"postcss": "^8.4.47",
116116
"prettier": "^3.6.2",
117-
"supabase": "^2.33.9",
117+
"supabase": "^2.58.5",
118118
"tailwindcss": "^3.4.11",
119119
"tsx": "^4.20.3",
120120
"typescript": "^5.5.3",

0 commit comments

Comments
 (0)