Skip to content

feat: UI rework — Hub, command palette, workspace persistence, query handover to Explorer#30

Merged
ChingEnLin merged 15 commits into
devfrom
feat/ui_rework
May 14, 2026
Merged

feat: UI rework — Hub, command palette, workspace persistence, query handover to Explorer#30
ChingEnLin merged 15 commits into
devfrom
feat/ui_rework

Conversation

@ChingEnLin

Copy link
Copy Markdown
Owner

Summary

  • Hub page — new landing page after login with DB engine cards; unavailable engines show correct badges
  • App shellAppLayout, AppSidebar, AppTopBar extracted as shared components across all authenticated routes; sidebar connection chip always rendered (placeholder prevents layout shift during loading)
  • Command palette (⌘K) — fuzzy search across navigate, actions, switch DB/account, and jump-to-collection commands; global keyboard shortcuts wired (⌘⇧1-4, ⌘N, ⌘⇧S)
  • Login page — fully redesigned with design tokens, inline SVG icons, no Tailwind/MUI
  • AI analysis result — redesigned with design tokens; two-column insight + Chart.js panel
  • Workspace persistenceuserInput, editableCode, querySourceCollection, executionResult, and _queryResult saved to sessionStorage['qp_workspace'] scoped to active connection; survives sidebar tab switches without clearing on auto-reconnect
  • Query handover to Explorer — "Open in Explorer" button in QueryDisplay (disabled with tooltip for non-find() queries); parseQueryForHandover() extracts collection + filters from generated code, mapping MongoDB operators ($ne, $gt, $lt, $exists, $regex, multi-op objects) to Explorer filter rows
  • Explorer filter handoverinitialFilters threaded through DataExplorerPageWrapperDataExplorerPage; applied once via ref-guarded useEffect after collection selection; fast-path (session cache hit) now also forwards initialFilters
  • Analytics page — new AnalyticsPage + AnalyticsPageWrapper added to routing
  • HubPage tweaks — removed "Don't see yours?" link; PostgreSQL/Snowflake/BigQuery/ClickHouse all marked Unavailable

Test plan

  • Login → Hub → connect to Cosmos DB → Query Generator
  • Generate a find() query, run it, click "Open in Explorer" — collection selected, filters pre-applied, result list matches workspace
  • Generate an aggregate query — "Open in Explorer" button is visible but disabled with tooltip
  • Switch sidebar tabs (Analytics → Workspace) — prompt, generated code, and result all restored
  • Switch account via connection chip — sidebar chip and collections remain stable (no flash/vanish)
  • ⌘K opens palette; arrow keys + Enter navigate; Esc closes; jump-to-collection works
  • npm run test:run — 67/67 pass

🤖 Generated with Claude Code

ChingEnLin and others added 15 commits May 12, 2026 20:24
- Introduced HubPage for improved user navigation and account management.
- Updated routing to redirect to HubPage on login.
- Refactored DataExplorerPage and QueryGeneratorPage to support embedded mode.
- Enhanced QueryGeneratorPageWrapper and DataExplorerPageWrapper to utilize AppLayout.
- Updated LoginPage to redirect to HubPage after authentication.
- Added design tokens for consistent styling across the application.
… improved styling and functionality

- Refactored ShareQueryDialog for better accessibility and user experience, including new animations and input handling.
- Updated ShortcutCheatsheet to improve layout and styling, ensuring consistency with design tokens.
- Introduced new design tokens for status indicators and drawer animations in design-tokens.css.
- Enhanced NotebookStepCard and NotebookPanel components for better visual consistency and usability.
- Added URL parameter handling for opening the saved queries panel in QueryGeneratorPage.
…nt and improved navigation

- Added session storage for connection state in DataExplorerPageWrapper and QueryGeneratorPage.
- Implemented active collection management and reset on database/account change.
- Enhanced HubPage with direct navigation to Data Explorer for the first database of an account.
- Updated QueryGeneratorPage to restore previous connection state and handle connection changes.
- Improved UI components for better user experience during loading and error states.
- Renamed handleRunQuery to executeCode for clarity and updated its logic to accept a code parameter.
- Improved error handling for query execution by checking the trimmed code.
- Updated notebook step creation to use the executed code instead of editableCode.
- Added a new function handleLoadAndRunSavedQuery to load and execute saved queries in one step.
- Enhanced the SavedQueriesPanel to include a new onLoadAndRun prop for loading and executing queries.
- Introduced dbReady state to manage database readiness for the saved queries panel.
- Refactor AnalysisResultDisplay component for improved chart options and layout.
- Introduce CommandPalette component for keyboard navigation and command execution.
- Update AppLayout to integrate CommandPalette and handle keyboard shortcuts.
- Enhance AppSidebar to show loading states and improve connection feedback.
- Modify AppTopBar to trigger CommandPalette.
- Implement caching mechanism in dbService for account and database data.
- Optimize DataExplorerPageWrapper and QueryGeneratorPage for better session handling and account switching.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ChingEnLin ChingEnLin merged commit a9a4e0f into dev May 14, 2026
3 checks passed
@ChingEnLin ChingEnLin deleted the feat/ui_rework branch May 14, 2026 16:01
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 2.10.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant