Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
314c5b4
chore: organize codebase and fix JetSeatVisualizer API - Archive SQL …
BlockSavvy Apr 10, 2025
c3e0005
chore: archive database fix and restore scripts, update cleanup report
BlockSavvy Apr 10, 2025
255d683
fix: improve seat visualizer accuracy and fix cookies handling
BlockSavvy Apr 10, 2025
5aa7743
fix: improve admin navigation and fix cookie handling in APIs
BlockSavvy Apr 10, 2025
05511e1
fix: use createClient() from supabase-server.ts to resolve auth issues
BlockSavvy Apr 10, 2025
fcab1f9
fix: improve sidebar navigation with proper dropdown functionality
BlockSavvy Apr 10, 2025
6ef19b7
feat: Full rebrand of JetShare to GDY UP + PWA support
BlockSavvy Apr 15, 2025
3dd12d0
Improve accessibility contrast in GDY UP app, especially for buttons …
BlockSavvy Apr 15, 2025
7a170c8
Remove debug overlay from JetShareOfferForm to clean up UI
BlockSavvy Apr 20, 2025
e794178
Complete GDYUP rebrand and interface improvements - Update authentica…
BlockSavvy Apr 20, 2025
176ab5d
Add documentation and additional components - Include auth system doc…
BlockSavvy Apr 20, 2025
0ba5e2c
Fix build errors - Add next-auth dependency and update auth imports -…
BlockSavvy Apr 20, 2025
656f31b
Add new airport images and concierge button
BlockSavvy Apr 20, 2025
aa0d6c4
Add airport placeholder image for route visualizations
BlockSavvy Apr 20, 2025
f4b85b4
Update GDYUP logo to lime green color (#DAFF0D) from white
BlockSavvy Apr 20, 2025
17bcd88
Add gdyup-logo-v2.svg and update references to bypass caching
BlockSavvy Apr 20, 2025
e6f8393
Enhance GDYup navigation and dashboard UI: reorganize header navigati…
BlockSavvy Apr 21, 2025
e8d1fb7
Fix onboarding process: add profile creation, improve jet form submis…
BlockSavvy Apr 21, 2025
505d845
Add GDYup API endpoints for user profile and jet management
BlockSavvy Apr 21, 2025
2172a88
Add GDYup authentication pages and container component
BlockSavvy Apr 21, 2025
57c5898
Add updated GDYup logo assets
BlockSavvy Apr 21, 2025
2f90125
Enhance offer form with improved airport maps and image integration
BlockSavvy Apr 21, 2025
3d6e059
Update .gitignore to exclude temporary files
BlockSavvy Apr 21, 2025
ab25eff
Fix 401 Unauthorized errors in GDYupDashboard by adding auth headers …
BlockSavvy Apr 21, 2025
a7c5bb6
Update .gitignore to exclude sensitive files and build directories
BlockSavvy Apr 21, 2025
38552d7
Add GDYUP-specific routing for standalone mobile deployment
BlockSavvy Apr 21, 2025
5f22423
Fix Next.js rewrite rules for GDYUP deployment
BlockSavvy Apr 21, 2025
6603fcd
Improve PWA support for GDYUP app - fix app name and standalone mode
BlockSavvy Apr 21, 2025
cf7789a
Fix PWA standalone mode for iOS - add dynamic head tags
BlockSavvy Apr 21, 2025
7a2722c
Update GDYUP app icons with new design
BlockSavvy Apr 21, 2025
9fe806e
Further improve PWA fullscreen mode for iOS - fix Safari toolbar
BlockSavvy Apr 21, 2025
f19bb21
Fix manifest.json syntax error
BlockSavvy Apr 21, 2025
abcb9c7
Add direct manifest link to head component
BlockSavvy Apr 21, 2025
105cd27
Fix: Allow manifest.json to be accessed without authentication
BlockSavvy Apr 21, 2025
28b556c
Fix: Mobile navigation issues in iOS Safari by removing fixed positio…
BlockSavvy Apr 22, 2025
2d2293d
Fix: Mobile navigation issues by removing styling that interferes wit…
BlockSavvy Apr 22, 2025
7d0081e
Fix: iOS Safari navigation issues by using direct window.location.hre…
BlockSavvy Apr 22, 2025
80930c9
Fix: iOS navigation issues in My Jets page by using window.location.h…
BlockSavvy Apr 22, 2025
f8a855f
Fix: TypeScript null check errors in payment success page
BlockSavvy Apr 22, 2025
507cd41
Fix: Add null checks to searchParams in all files to fix TypeScript e…
BlockSavvy Apr 22, 2025
7c1610b
Update: Manifest.json for PWA enhancements
BlockSavvy Apr 22, 2025
1ced4bc
Update: next-env.d.ts TypeScript declarations
BlockSavvy Apr 22, 2025
4219867
Update: Authentication changes documentation
BlockSavvy Apr 22, 2025
65b2ae4
Fix: Add missing jet detail and edit pages for My Jets navigation
BlockSavvy Apr 22, 2025
dab3f62
Fix: Add GDYUP dashboard API endpoints to PUBLIC_ROUTES to resolve 40…
BlockSavvy Apr 22, 2025
27e0ad6
Fix profile setup form and jet data submission issues
BlockSavvy Apr 22, 2025
fd2e4a0
Add forgot password page, update dashboard to use JetShare API, and a…
BlockSavvy Apr 23, 2025
8b19aae
Fix iOS PWA retry loop issue with My Jets page
BlockSavvy Apr 23, 2025
17a2199
Fix GDY·UP My Jets page to use correct API endpoint and prevent mock …
BlockSavvy Apr 23, 2025
83fe83f
Remove all mock data from Jets page in all environments
BlockSavvy Apr 23, 2025
9d51519
Fix 404 errors on jet details and settings pages
BlockSavvy Apr 23, 2025
28caf0c
Add jet settings page and fix dashboard import path
BlockSavvy Apr 23, 2025
4ba7fbd
Fix airport data loading for gdyup offer form with improved error han…
BlockSavvy Apr 23, 2025
55dea55
Fix airport API middleware access and response handling for productio…
BlockSavvy Apr 23, 2025
c8b8be6
Ensure reliable airport data for beta launch by using embedded airpor…
BlockSavvy Apr 23, 2025
203da17
FIX: Ensure airports API works in production with REAL database data …
BlockSavvy Apr 23, 2025
6a9df65
FIX: Bypass middleware for all jets API routes to fix seat visualizer…
BlockSavvy Apr 23, 2025
869287b
Fix icon visibility issues on lime green buttons and improve contrast…
BlockSavvy May 2, 2025
a711eaf
Fix UI styling issues: Improve icon contrast, implement consistent bu…
BlockSavvy May 2, 2025
a34bc01
Complete GDYUP app refactoring and UI improvements including API rout…
BlockSavvy May 2, 2025
a450a3f
Fix: Add react-icons dependency for PiArmchair icon used in JetShareO…
BlockSavvy May 2, 2025
d2a0c37
Fix theme switching functionality and concierge button theming
BlockSavvy May 2, 2025
de126af
Fix icon colors in primary buttons to ensure black icons for contrast
BlockSavvy May 2, 2025
f0b35f0
Add cron job for automatic embedding updates
BlockSavvy May 2, 2025
5be2143
Fix: Update Create Offer button to use correct path
BlockSavvy May 3, 2025
938c2b3
Fix email confirmation URL and carbon fiber texture for Luxury Black …
BlockSavvy May 3, 2025
2e3ae60
Add carbon fiber texture background for Luxury Black theme
BlockSavvy May 3, 2025
e20b616
Fix email confirmation URL issues for GDYUP mobile app
BlockSavvy May 3, 2025
5255cf7
Fix GDYUP email confirmation redirects and app mode detection
BlockSavvy May 3, 2025
2ad1a27
Fix profile creation error and improve GDYUP app detection in auth ca…
BlockSavvy May 3, 2025
323b04b
Fix email confirmation links to use correct domain instead of localhost
BlockSavvy May 3, 2025
690b09d
Fix profile creation by adding all required fields for profiles table
BlockSavvy May 3, 2025
faf90ae
Fix profile creation in auth callback and useUserProfile hook to incl…
BlockSavvy May 3, 2025
f0c8343
Fix profile creation in auth provider syncProfile function to include…
BlockSavvy May 3, 2025
8644a9a
Fix profile creation and onboarding middleware to prevent duplicate p…
BlockSavvy May 3, 2025
01cf70f
Fix TypeScript error in process-payment route and implement BTCPay Se…
BlockSavvy May 3, 2025
2ba6431
Complete BTCPay Server integration with Bitcoin Lightning payment sup…
BlockSavvy May 3, 2025
259418f
Add BTCPay webhook handler, payment verification, and remaining UI co…
BlockSavvy May 3, 2025
f2eea23
Fix broken URL paths in offer acceptance flow redirecting from /jetsh…
BlockSavvy May 3, 2025
2ea146a
Complete Nostr implementation with AI embedding integration
BlockSavvy May 3, 2025
4536e7e
Fix parameter name issues in Nostr embedding functions
BlockSavvy May 3, 2025
4a6835a
Update Nostr embedding integration with fixed parameters and package …
BlockSavvy May 3, 2025
7c6ad11
Update documentation for payment system and embeddings
BlockSavvy May 3, 2025
74531b3
Add manual embedding script and hero image
BlockSavvy May 3, 2025
da4a17f
Add yarn.lock to gitignore to avoid package manager conflicts
BlockSavvy May 3, 2025
2be7dd0
Add JetShare embedding helper functions for improved efficiency
BlockSavvy May 3, 2025
dd8d141
Enhance GDY·UP theming system with centralized utilities, icon classe…
BlockSavvy May 3, 2025
63b40fd
Fix double header in GDYUP mobile app by removing duplicate GdyupHead…
BlockSavvy May 3, 2025
f7e3cc6
Fix 404 errors by adding missing pages for Jets management
BlockSavvy May 3, 2025
5afb445
Fix airport autocomplete not displaying data from database in GDY·UP
BlockSavvy May 3, 2025
2a2a3bf
Fix JetShareOfferForm UI and seat split functionality
BlockSavvy May 5, 2025
256e6b2
Enhance theme system with consistent component styling
BlockSavvy May 5, 2025
e80d620
Add custom hooks for GDY·UP theming and responsive design
BlockSavvy May 5, 2025
ba7f124
Improve API endpoints for JetShare functionality
BlockSavvy May 5, 2025
60e276d
Update payment flow and Bitcoin/Nostr integration
BlockSavvy May 5, 2025
dcdd638
Enhance UI layouts and map components
BlockSavvy May 5, 2025
a8022e9
Update documentation and config
BlockSavvy May 5, 2025
8628bcc
Add utility hooks for responsive design
BlockSavvy May 5, 2025
4238a3a
Add world map dark theme asset for airport visualization
BlockSavvy May 5, 2025
a731222
Fix jet selection: Remove fallback data and use correct API endpoints
BlockSavvy May 5, 2025
c99601d
Fix offer acceptance flow and add robust error handling
BlockSavvy May 5, 2025
a4b8ce4
Fix Bitcoin payment flow and enhance BTCPay Server integration
BlockSavvy May 5, 2025
e29f819
Fix formatting in BTCPay integration guide
BlockSavvy May 5, 2025
5dcec69
Add Messages placeholder page and fix boarding pass functionality
BlockSavvy May 5, 2025
4dc329e
Fix: TypeScript errors in GdyupThemeSwitcher and layout.tsx, remove r…
BlockSavvy May 6, 2025
1be3917
Add: Nostr integration components, BoardingPass API endpoints, and ut…
BlockSavvy May 6, 2025
713ec83
Update: Theming and UX improvements for components, boardingpass, and…
BlockSavvy May 6, 2025
927144f
Fix: Payment flow navigation and error handling for seamless experience
BlockSavvy May 6, 2025
a91139d
Implement boarding pass enhancements with Nostr integration and fix b…
BlockSavvy May 6, 2025
4b02c4e
fix: add missing Nostr components for boarding pass functionality
BlockSavvy May 6, 2025
a875320
feat: complete boarding pass flow with Nostr integration and theme co…
BlockSavvy May 6, 2025
c4a23eb
fix: resolve Nostr initialization errors and 404 issues with dynamic …
BlockSavvy May 6, 2025
8048ea1
fix: payment processing and contrast issues in JetSharePaymentForm an…
BlockSavvy May 6, 2025
1990fe4
fix: btcpay simulator to use requested_share_amount and add SQL for m…
BlockSavvy May 6, 2025
0da7e21
Fix TypeScript linter errors in dashboard tabs components
BlockSavvy May 7, 2025
76c1d26
Update core GDY·UP components and layout for enhanced identity integr…
BlockSavvy May 7, 2025
edf18d8
Update dependencies for Nostr and BTC integration
BlockSavvy May 7, 2025
4584261
Add API endpoints for boarding passes, Nostr integration, and wallet …
BlockSavvy May 7, 2025
a792696
Add enhanced components for boarding passes, Nostr integration, and d…
BlockSavvy May 7, 2025
d022a7d
Add additional dashboard tab components for activity feed, boarding p…
BlockSavvy May 7, 2025
869a242
Add onboarding flow, tickets interface, and identity documentation
BlockSavvy May 7, 2025
3e27c21
Add database migrations and scripts for Nostr and wallet integration
BlockSavvy May 7, 2025
4c216e2
Update .gitignore to exclude Cursor IDE files
BlockSavvy May 7, 2025
b0bb9e1
Fix dashboard UI issues: remove duplicate Browse Flights button, impr…
BlockSavvy May 7, 2025
88f1cde
Update package dependencies and global CSS for better theme consistency
BlockSavvy May 7, 2025
477f41f
Fix boarding pass QR code and Nostr identity display issues
BlockSavvy May 7, 2025
fcdd91b
Add essential API routes and documentation
BlockSavvy May 7, 2025
29fa619
Fix wallet and Nostr identity consistency issues. Synced profile/wall…
BlockSavvy May 7, 2025
f60775c
Fix wallet and NIP-05 verification issues; Add wallet sync & nip05_ve…
BlockSavvy May 8, 2025
d70c43e
Fix wallet data consistency and badge contrast issues in dashboard
BlockSavvy May 13, 2025
69c6296
Implement centralized theme system with helper functions and standard…
BlockSavvy May 13, 2025
8052566
Update layout and navigation components with consistent theming
BlockSavvy May 13, 2025
76db209
Refactor dashboard components with improved theming and fix wallet da…
BlockSavvy May 13, 2025
09fd82d
Enhance Nostr components with improved contrast and consistent theming
BlockSavvy May 13, 2025
cb3801e
Update core UI components with standardized theming
BlockSavvy May 13, 2025
2097343
Refactor jet selection and booking components with consistent theming
BlockSavvy May 13, 2025
7be1bbf
Update page components with standardized theming and improved mobile …
BlockSavvy May 13, 2025
8b5f85b
Optimize API routes for better error handling and data consistency
BlockSavvy May 13, 2025
1c2ed5e
Update auth components and utilities with consistent theming
BlockSavvy May 13, 2025
3fcb9ae
Add new components for the centralized theming system
BlockSavvy May 13, 2025
ef9570d
Update documentation and remaining page components
BlockSavvy May 13, 2025
0ac1f6a
Add theme documentation and test components
BlockSavvy May 13, 2025
a187793
Add theme lab and theme analysis tools for designer access
BlockSavvy May 13, 2025
7076a4f
Add themed UI components
BlockSavvy May 13, 2025
700ba73
Add component documentation README
BlockSavvy May 13, 2025
c8e20fb
Add modularized offer form components for better maintainability
BlockSavvy May 13, 2025
cab62bd
Add platform initialization scripts
BlockSavvy May 13, 2025
b89a6d0
feat: Add Capacitor iOS platform with mobile-optimized GDY·UP interfa…
BlockSavvy May 28, 2025
2d93db2
🔥 Add Elite Native iOS Payment & Zap Components - ElitePaymentSheet w…
BlockSavvy May 29, 2025
d1db31a
🎯 Complete Native iOS App Setup - Added app icons, fixed TypeScript e…
BlockSavvy May 29, 2025
ce33a8c
🔥 ELITE APP PERFECTION: Fix duplicate concierge buttons, restore soph…
BlockSavvy May 29, 2025
584eda3
feat: configure Capacitor for native iOS app deployment with proper d…
BlockSavvy Jun 8, 2025
75a137b
chore: remove Xcode user state files from tracking - already in .giti…
BlockSavvy Jun 8, 2025
31eb490
feat: ELITE navigation system + splash video integration - fixed dupl…
BlockSavvy Jun 8, 2025
1910fdf
feat: ORBITAL BLAST enhancements - haptic feedback + native share + e…
BlockSavvy Jun 8, 2025
7d65f8e
🚀 ELITE: Complete GDY·UP overhaul - Crimson theme, real auth, enhance…
BlockSavvy Jun 8, 2025
ff63edb
🔧 CRITICAL FIX: Navigation buttons now visible - Fixed z-index confli…
BlockSavvy Jun 8, 2025
1029e54
LEGENDARY UPGRADE: Satoshi orange BTC theme, perfect contrast, user j…
BlockSavvy Jun 8, 2025
831ef6c
🚀 MAJOR FIXES: Custom splash screen, theme system overhaul, form navi…
BlockSavvy Jun 8, 2025
0eae692
🎬 SPLASH SCREEN PERFECTION: Fixed native app initialization with 4-se…
BlockSavvy Jun 8, 2025
6df94e9
🚀 PRODUCTION READY: App icons generated, production config, TestFligh…
BlockSavvy Jun 8, 2025
d0995d4
✅ FIXED: App name corrected to 'GDYUP' as requested
BlockSavvy Jun 8, 2025
1a5d4aa
🚀 COMPREHENSIVE PROFESSIONAL OVERHAUL: Splash screen, theme system, d…
BlockSavvy Jun 8, 2025
a6ce8bf
🔧 MAJOR FIX: Resolved super zoom issue & splash screen loading proble…
BlockSavvy Jun 8, 2025
5bd4e47
Fix mobile navigation visibility and CSS conflicts
BlockSavvy Jun 8, 2025
1213fea
🔥 FINAL FIX: Mobile navigation now appears across ALL GDY UP pages - …
BlockSavvy Jun 8, 2025
87482f6
Clean mobile navigation with elevated concierge button - removed debu…
BlockSavvy Jun 9, 2025
a9b20e0
Fix Swift compilation error - disable native splash screen, use custo…
BlockSavvy Jun 9, 2025
d353a08
🛠️ MAJOR BUILD FIXES: Removed problematic splash assets, minimal Capa…
BlockSavvy Jun 9, 2025
605579c
🔥 NUCLEAR REBUILD: Fresh iOS platform, minimal config, all build issu…
BlockSavvy Jun 9, 2025
0f88460
🔥 Fix mobile navigation anchoring, concierge radial menu, splash scre…
BlockSavvy Jun 9, 2025
10047db
💥 NUCLEAR FIX: Force mobile nav to bottom of screen + eliminate splas…
BlockSavvy Jun 9, 2025
7d7ee44
🚀 FINAL NUCLEAR FIXES: Max CSS specificity + memory cleanup - Added n…
BlockSavvy Jun 9, 2025
9bd826d
🎯 ULTIMATE FIXES: Inline CSS Z-index + Nostr crash prevention
BlockSavvy Jun 9, 2025
d979ec3
🔧 Fix iOS build errors: Clean Pods, fix splash assets, update Capacit…
BlockSavvy Jun 9, 2025
b0cb8e2
🎯 NUCLEAR FIX: Mobile nav positioning & concierge radial menu layout …
BlockSavvy Jun 9, 2025
cdc1d8a
Fix: iOS native mobile navigation positioning
BlockSavvy Jun 10, 2025
a6e04cb
fix: Remove NostrProvider to prevent iOS app freezing - NostrProvider…
BlockSavvy Jun 10, 2025
6dd907b
🚀 Fix mobile nav positioning - Universal solution for web & iOS Capac…
BlockSavvy Jun 10, 2025
7c949d6
📱 Configure Capacitor to use remote server with mobile nav fixes
BlockSavvy Jun 10, 2025
958ef01
📦 Clean up CSS files - Add modified gdyup.css and backup for reference
BlockSavvy Jun 10, 2025
fe19e6b
🎬 Fix iOS splash screen freezing issue - GIF shows first, proper tran…
BlockSavvy Jun 10, 2025
b9a62f0
🎬 COMPLETE SPLASH SCREEN FIX - No more stretched yellow icon! Fixed n…
BlockSavvy Jun 10, 2025
516b9da
🔧 Fix React Error #418 - Hydration mismatch resolved! Added client-si…
BlockSavvy Jun 10, 2025
c8c2d85
✨ Add pulse animation for splash screen loading dots
BlockSavvy Jun 10, 2025
c54f358
Fix React hydration errors with robust client-only rendering
BlockSavvy Jun 10, 2025
70f3766
Improve error boundary logging for better debugging
BlockSavvy Jun 10, 2025
df34025
Add debugging styles and fallback positioning for mobile nav visibility
BlockSavvy Jun 10, 2025
9fc748f
CRITICAL FIX: Stop splash on every page change + force mobile nav vis…
BlockSavvy Jun 10, 2025
acbe863
BULLETPROOF FIX: Mobile nav using React portal to bypass parent clipping
BlockSavvy Jun 10, 2025
c6f8357
Fix iOS WebView navigation positioning with sticky/fixed hybrid approach
BlockSavvy Jun 10, 2025
661ea11
BULLETPROOF iOS WebView navigation with dedicated scroll container
BlockSavvy Jun 10, 2025
f48001a
PERFECT mobile navigation: refined concierge button positioning and t…
BlockSavvy Jun 10, 2025
8d22e2b
ELITE mobile nav: perfect centering, sophisticated concierge panel, b…
BlockSavvy Jun 10, 2025
f40eaf4
ELITE 2025 Mobile Navigation: Perfect centering, premium animations, …
BlockSavvy Jun 10, 2025
4331aa3
BULLETPROOF CENTERING: 5-column grid layout reserves center space for…
BlockSavvy Jun 10, 2025
c808c5a
PIXEL-PERFECT CENTERING: Grid-based concierge button positioning
BlockSavvy Jun 10, 2025
0b1cf9d
🎯 FIX: Update mobile navigation to use correct page structure - Brows…
BlockSavvy Jun 11, 2025
67dd32e
🔧 FIXED: EliteAIConcierge serialization error - Remove function prop …
BlockSavvy Jun 11, 2025
949619f
feat: Create stunning circular radial menu for AI Concierge - Replace…
BlockSavvy Jun 11, 2025
161162e
fix: Optimize radial menu sizing to prevent off-screen positioning - …
BlockSavvy Jun 11, 2025
c522b6c
fix: Completely rebuild radial menu with proper semicircle positionin…
BlockSavvy Jun 11, 2025
5737d19
fix: Solve radial menu positioning with real button coordinates - Add…
BlockSavvy Jun 11, 2025
bc261bd
fix: center concierge radial menu positioning - use fixed positioning…
BlockSavvy Jun 11, 2025
e639e88
fix: resolve prop serialization error in EliteZapSheet - make functio…
BlockSavvy Jun 11, 2025
9fb2fb7
feat: completely rewrite radial menu with precise positioning - use e…
BlockSavvy Jun 11, 2025
c50caae
🎯 FINAL ZONE: Perfect radial menu with elite styling - refined positi…
BlockSavvy Jun 11, 2025
9e4736b
🎯 PERFECT INTEGRATION: Text + icons now contained within radial butto…
BlockSavvy Jun 11, 2025
de79f9d
🚀 FINAL PERFECT RADIAL MENU: Dead-center positioning (50% screen), re…
BlockSavvy Jun 11, 2025
5fe6054
🍎 iOS App: Fix button positioning, contrast, and eliminate fallback d…
BlockSavvy Jun 11, 2025
49f05e9
🏆 ULTIMATE LUXURY APP TRANSFORMATION: Created EliteDateTimePicker, En…
BlockSavvy Jun 11, 2025
32b5022
🚀 COMPLETE ELITE iOS TRANSFORMATION: Fixed ALL contrast issues with p…
BlockSavvy Jun 11, 2025
f797dba
🚀 CRITICAL FIX: API client BASE_URL + landing page optimization - Fix…
BlockSavvy Jun 11, 2025
0290c4b
🚀 ULTIMATE FORM OVERHAUL: Fixed database + ultra-elite date picker - …
BlockSavvy Jun 11, 2025
de71fd7
🚀 CRITICAL MIDDLEWARE FIX: Production API redirects resolved - Added …
BlockSavvy Jun 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@ NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key

# App Configuration
NEXT_PUBLIC_APP_URL=https://your-app-url.com

# Development Mode Authentication
# Set to 'true' to enable development mode with a real user from the database
NEXT_PUBLIC_AUTH_DEV_MODE=false
# Real user ID from your Supabase database (required if dev mode is enabled)
NEXT_PUBLIC_AUTH_DEV_USER_ID=real_user_id_from_database
# Email for the dev user (optional, will be fetched from database)
NEXT_PUBLIC_AUTH_DEV_USER_EMAIL=dev@example.com

# xAI Grok API for Concierge
XAI_GROK_API_KEY=your_xai_grok_api_key

Expand Down
32 changes: 32 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"extends": ["next/core-web-vitals", "plugin:@typescript-eslint/recommended", "plugin:react-hooks/recommended"],
"plugins": ["@typescript-eslint", "filenames", "tailwindcss", "simple-import-sort"],
"rules": {
"react/no-unescaped-entities": "off",

// 🧱 Enforce filename conventions
"filenames/match-regex": [2, "^[a-zA-Z0-9]+(\\.(ui|container))?$", true],

// 🎨 Warn against hardcoded styles (enforce Tailwind + theme hook)
"no-inline-styles": 0,
"tailwindcss/classnames-order": "warn",
"tailwindcss/no-custom-classname": "off",

// 📦 Sort imports consistently
"simple-import-sort/imports": "warn",
"simple-import-sort/exports": "warn",

// 🧠 TypeScript
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }]
},
"settings": {
"tailwindcss": {
"callees": ["classnames", "clsx"],
"config": "tailwind.config.js",
"cssFiles": ["**/*.css", "**/*.scss"],
"removeDuplicates": true
}
}
}

11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,17 @@
# misc
.DS_Store
*.pem
# Exclude images except those in public folder
*.png
*.jpg
*.jpeg
*.gif
*.svg
!public/**/*.png
!public/**/*.jpg
!public/**/*.jpeg
!public/**/*.gif
!public/**/*.svg

# debug
npm-debug.log*
Expand All @@ -47,3 +53,8 @@ logs/
# IDE
.idea/
.vscode/
.cursor/
.env.gdyup
storybook-static/
yarn.lock
ios/App/App.xcworkspace/xcuserdata/
37 changes: 37 additions & 0 deletions .storybook/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
const path = require('path');

/** @type { import('@storybook/react-vite').StorybookConfig } */
const config = {
stories: [
'../stories/Introduction.mdx',
'../stories/jetstream/**/*.mdx',
'../stories/jetstream/**/*.stories.@(js|jsx|ts|tsx)',
'../stories/gdyup/**/*.mdx',
'../stories/gdyup/**/*.stories.@(js|jsx|ts|tsx)',
'../stories/jetshare/**/*.mdx',
'../stories/jetshare/**/*.stories.@(js|jsx|ts|tsx)',
'../stories/ui/**/*.mdx',
'../stories/ui/**/*.stories.@(js|jsx|ts|tsx)'
],
addons: ['@storybook/addon-essentials'],
framework: {
name: '@storybook/react-vite',
options: {}
},
docs: {
autodocs: 'tag',
},
staticDirs: ['../public'],
core: {
disableTelemetry: true
},
viteFinal: (config) => {
// Simple path alias
config.resolve.alias = {
...config.resolve.alias,
'@': path.resolve(__dirname, '../')
};

return config;
}
};
83 changes: 83 additions & 0 deletions AUTH_CHANGES_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Authentication System Changes Summary

## Changes Made to Fix Authentication Issues

1. **Created a Single Source of Truth for Auth**
- Created a consolidated auth provider in `lib/auth-provider.tsx`
- Moved from old path (`components/auth-provider.tsx`) to new path for better organization
- Implemented properly typed error handling

2. **Supabase Client Management**
- Implemented proper singleton pattern for Supabase client in `lib/supabase.ts`
- Removed mock implementations in favor of real data fetching
- Fixed storage handling to work better across browsers and devices

3. **Development Mode with Real User Data**
- Created a development mode that uses real user data from the database in `lib/dev-auth.ts`
- Uses environment variables for configuration (`NEXT_PUBLIC_AUTH_DEV_USER_ID`, `NEXT_PUBLIC_AUTH_DEV_USER_EMAIL`)
- Fetches the actual user profile from the database for consistency

4. **Redirect Loop Prevention in Middleware**
- Updated middleware to prevent redirect loops with counter
- Improved public routes detection
- Added better error handling for API routes

5. **Authentication Persistence**
- Created a dedicated hook and provider for auth persistence
- Handles session refresh at appropriate times
- Maintains consistent localStorage state

6. **Updates to Component Import Paths**
- Updated import path in `app/layout.tsx` and other key files
- Added `AuthPersistenceProvider` to maintain session state across the app

7. **Fixed Profile Fetching in useUserProfile hook**
- Updated to use the singleton Supabase client
- Improved error handling and type safety
- Ensured compatibility with the new auth system

## Files Changed

1. Created new files:
- `/lib/auth-provider.tsx` - Main auth provider
- `/lib/dev-auth.ts` - Development mode implementation
- `/lib/hooks/useAuthPersistence.ts` - Auth persistence hook
- `AUTH_SYSTEM.md` - Documentation
- `AUTH_QA_CHECKLIST.md` - Testing checklist

2. Updated existing files:
- `/lib/supabase.ts` - Improved client implementation
- `/middleware.ts` - Better route protection
- `/hooks/useUserProfile.tsx` - Fixed profile fetching
- `/hooks/useAuthSync.ts` - Updated for compatibility
- `/components/AuthGuard.tsx` - Simplified implementation
- `/app/layout.tsx` - Updated import paths and added persistence

## Environment Variables

Added environment variables for development mode:

# Development Mode Authentication

NEXT_PUBLIC_AUTH_DEV_MODE=false
NEXT_PUBLIC_AUTH_DEV_USER_ID=26209e07-7600-4df6-ab1e-4b338f760aff
NEXT_PUBLIC_AUTH_DEV_USER_EMAIL=<m@aiya.sh>

## Outstanding Tasks

Components that need imports updated:

1. Many components still import from `@/components/auth-provider`
2. Several components still use `createClient()` instead of `getSupabaseClient()`

These should be updated gradually to avoid breaking changes:

```typescript
// Old imports
import { useAuth } from '@/components/auth-provider';
import { createClient } from '@/lib/supabase';

// New imports
import { useAuth } from '@/lib/auth-provider';
import { getSupabaseClient } from '@/lib/supabase';
```
104 changes: 104 additions & 0 deletions AUTH_QA_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Authentication QA Checklist

This checklist guides the testing of the authentication system to ensure it works end-to-end across different scenarios.

## Development Mode Testing

- [ ] Set `NEXT_PUBLIC_AUTH_DEV_MODE=true` in `.env.local`
- [ ] Set `NEXT_PUBLIC_AUTH_DEV_USER_ID` to a real user ID from your database
- [ ] Start the app with `npm run dev`
- [ ] Verify you're automatically logged in with the dev user
- [ ] Check profile data matches the real user from the database
- [ ] Navigate between public and protected routes without auth prompts
- [ ] Verify API calls work with the dev session

## Production Mode Testing

### Sign Up

- [ ] Navigate to `/auth/register`
- [ ] Create a new account with email and password
- [ ] Verify confirmation email is sent (check logs or email provider)
- [ ] Verify appropriate success message is shown

### Login Flow

- [ ] Navigate to a protected route (e.g., `/gdyup/dashboard`)
- [ ] Verify redirect to login page with returnUrl in query params
- [ ] Log in with valid credentials
- [ ] Verify redirect back to original protected route
- [ ] Test remembered login state after page refresh

### Authentication Persistence

- [ ] Login and navigate through multiple pages
- [ ] Refresh the browser on different routes
- [ ] Verify session persists across navigation and refreshes
- [ ] Leave the site idle for 10+ minutes and verify session still works

### Logout Flow

- [ ] Click logout button while on a protected route
- [ ] Verify redirect to appropriate home page (JetShare or GDY·UP)
- [ ] Verify protected routes redirect to login after logout
- [ ] Verify localStorage auth data is cleared after logout

### Password Reset

- [ ] Navigate to forgot password page
- [ ] Request password reset for your email
- [ ] Verify reset email is sent
- [ ] Follow reset link and set new password
- [ ] Log in with new password

### Error Handling

- [ ] Login with invalid credentials
- [ ] Verify appropriate error message
- [ ] Register with existing email
- [ ] Verify appropriate error message
- [ ] Force a session token to expire and verify graceful handling

### Cross-Browser Testing

- [ ] Test login flow in Chrome
- [ ] Test login flow in Firefox
- [ ] Test login flow in Safari
- [ ] Test login flow in Edge
- [ ] Test login flow on mobile browsers (iOS Safari, Android Chrome)

## Specific Route Testing

### GDY·UP Routes

- [ ] `/gdyup/dashboard` - Verify requires auth
- [ ] `/gdyup/profile` - Verify requires auth
- [ ] `/gdyup/listings/manage` - Verify requires auth
- [ ] `/gdyup` (home) - Verify public access works

### JetShare Routes

- [ ] `/jetshare/dashboard` - Verify requires auth
- [ ] `/jetshare/listings/manage` - Verify requires auth
- [ ] `/jetshare` (home) - Verify public access works

### API Routes

- [ ] Test a protected API endpoint with valid auth
- [ ] Test a protected API endpoint with no auth (should return 401)
- [ ] Test a protected API endpoint with expired token
- [ ] Verify API refresh token mechanism works

## Edge Cases

- [ ] Test behavior when cookies are disabled
- [ ] Test navigation between JetShare and GDY·UP authenticated areas
- [ ] Test authentication after clearing browser cache but not cookies
- [ ] Test behavior when localStorage is unavailable (private browsing)
- [ ] Test auth with slow network conditions (throttled connection)

## Redirect Loop Prevention

- [ ] Force a redirect loop scenario (if possible)
- [ ] Verify the site doesn't get stuck in an infinite loop
- [ ] Check that the error page shows when too many redirects occur
Loading