* New troubleshooting guide for users seeing empty branches due to no migration files
* format
* format and changes
* format
* Change title
* Addressed initial comments
Increasing this because of reports that CSV uploads are hitting 429s. (I
checked and there are no Retry-After headers, so we should be falling
back to the default exponential backoff.)
Also brings the implementation in line with the comment :P Before, the
comment claimed we were starting at 1s but we were starting at 500ms.
* feat(preferences): allow disable hotkeys
Add a section in /account/me for disabling hotkeys. Only added one
hotkey for now (Cmd + E for toggling editor side panel) but we can add
more with the same pattern.
* refactor: remove default export on ProjectLayout
* feat(hotkeys): allow toggling of command menu and ai assistant hotkeys
* Nit
* PRettier lint
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* change connection string via dropdown
* rearrange descriptive content and actions in connection string tab
* update connection string url state based on selected type and method
* reset query states when switching tabs
* fix steps layout in Connection String dialog tab
* rounded-lg on mobile
* update wording of step 3 on connection string tab
* improve map key naming
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* refactor(docs): enhance NavigationMenuGuideListItems component
* cleanup..
* Resolve formatting conflicts in NavigationMenuGuideListItems
* Came up with a crazy recursive approach...
* some changes.
* More cleanups...
* more cleanups....
* formatting the stuff
* refactor(navigation): remove sample menu data and optimize icon rendering in RecursiveNavigation
* cleanup...
* feat: enhance navigation with recursive dropdown indicators and performance optimizations
- Add visual chevron indicators for expandable sidebar items
- Implement recursive navigation system using existing NavMenuSection types
- Auto-expand accordion sections containing current active page on load/refresh
- Extract LinkContainer as independent component to prevent recreation on renders
- Fix React 19 compatibility issues with ref handling using useCallback pattern
- Resolve duplicate key warnings with improved key generation strategy
- Optimize accordion transition timing (500ms duration with ease-in-out) to prevent element overlap
- Preserve existing icon logic with hasLightIcon support for theme variants
- Maintain backward compatibility with existing navigation data structures
Performance improvements:
- Memoized recursive components to prevent unnecessary re-renders
- Stable component references for better React reconciliation
- Proper TypeScript interfaces with explicit prop definitions
UX improvements:
- Smooth accordion animations with physics-based easing
- Clear visual indicators for expandable menu items
- Automatic expansion of sections containing current page
- Professional-grade transition animations
Technical details:
- Uses existing NavMenuSection recursive type structure
- Implements containsActivePath helper for active page detection
- Leverages Radix UI accordion with proper data-state attributes
- Maintains all existing functionality including dynamic menu injection
* Cleanup...
* feat: implement cookie-based persisted state for navigation accordion
- Replace localStorage with cookie-based persistence for SSR compatibility
- Add proper cookie helpers with SameSite=Lax and 30-day expiration
- Implement initialization state to prevent hydration mismatches
- Maintain auto-expand functionality for active page sections
- Preserve user's manual accordion state across page refreshes and sessions
- Add debounced cookie updates (300ms) for performance optimization
- Use proper cookie naming convention: 'supabase-docs-nav-state'
Benefits:
- SSR compatible: Works with server-side rendering
- Cross-session persistence: Maintains state across browser sessions
- Better security: Cookies are more secure than localStorage
- Performance: Debounced updates prevent excessive cookie writes
- User experience: Seamless navigation state preservation
* refactor: implement individual item-based persistence following reference pattern
- Replace global state management with individual item persistence
- Use sessionStorage with 'nav-expansion-' prefix for each item
- Follow the exact pattern from reference: usePersistedExpansionState hook
- Maintain auto-expansion for active page sections
- Simplify state management by removing complex global state
- Each accordion item manages its own expansion state independently
- Preserve user's manual toggle state across page refreshes
- Use sessionStorage instead of cookies for better performance
Benefits:
- Cleaner architecture: Each item manages its own state
- Better performance: No global state updates
- Simpler logic: Direct item-to-storage mapping
- Reference pattern compliance: Follows established patterns
- Individual control: Each section can be toggled independently
- Session persistence: Maintains state during browser session
* refactor: implement URL-driven navigation state following Supabase docs pattern
- Replace sessionStorage persistence with URL-driven expansion state
- Follow the established Supabase docs pattern: URL as single source of truth
- Remove individual item persistence hooks in favor of pathname-based logic
- Implement useUrlDrivenExpansion hook that determines open sections from current URL
- Use getSectionsContainingPath to find all sections that should be expanded
- Remove manual toggle functionality - sections open/close based on URL navigation
- Maintain smooth transitions and visual indicators for expandable sections
- Ensure consistency and reliability by using URL as the definitive state source
Benefits:
- Reliability: URL is always the single source of truth
- Consistency: Matches existing Supabase docs navigation behavior
- Simplicity: No complex state management or storage concerns
- Performance: No localStorage/sessionStorage operations
- SSR Compatible: Works perfectly with server-side rendering
- Predictable: Navigation state is always consistent with current page
* persistant state.
* file delete
* cleanup..
* file cleanup
* cleanup...
* cleanup..
* formatting..
* aww shit that it.
---------
Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
* fix(feedback): generate image urls on backend
* Fix support form skip generate attachment urls if no attachments
* Refactor to use useLocalStorageQuery
* Nit
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Knowing the commit SHA will help us debug issues by matching them to Git
timeline. Added the commit SHA in two places:
1. Automatically as part of the message on support requests
2. Logged within the console, so we can ask the user to double-check
when checking if issues persist/are fixed
* user newer input in api keys
* user newer input in s3 connection settings
* improve input read-only styles
* make API text selectable
* disable text until reveal button tapped
* fix build
* revert change
* fix other cases
* revert hardcoded example
* nice region field
* documentation
* cleanup
* better docs
* colour tweaks