Skip to content

feat(ui): upgrade console-components to v0.3.0#207

Merged
v-kessler merged 3 commits intomainfrom
feat/console-components-v0.3.0
Mar 8, 2026
Merged

feat(ui): upgrade console-components to v0.3.0#207
v-kessler merged 3 commits intomainfrom
feat/console-components-v0.3.0

Conversation

@v-kessler
Copy link
Contributor

@v-kessler v-kessler commented Mar 8, 2026

feat(ui): add HomeStatistics dashboard with project/warehouse/table/view counts and API calls area chart
feat(ui): add community action cards (Star, Contribute, Share on LinkedIn) to Home page
feat(ui): add WarehouseStatistics tab with D3 stacked area charts and server-side filtering
feat(ui): move GitHub stars to AppBar linked to repository
feat(ui): pass storageLayout prop to NamespaceTables and NamespaceViews
feat(ui): update Contributing section in README to point to shared CONTRIBUTING.md
fix(ui): remove deprecated GitHub stats chips, quick access cards, and routeToRoles from Home

Summary by CodeRabbit

  • New Features

    • Added Community Actions cards to the home page with quick links to Star, Contribute, and Share
    • Introduced dashboard statistics display on the home page
    • Added a Statistics tab to warehouse pages for viewing warehouse insights
    • Added storage layout configuration support for namespaces
  • Chores

    • Updated component library dependency to the latest version
    • Updated contributing documentation to reference centralized contribution guide

feat(ui): add HomeStatistics dashboard with project/warehouse/table/view counts and API calls area chart
feat(ui): add community action cards (Star, Contribute, Share on LinkedIn) to Home page
feat(ui): add WarehouseStatistics tab with D3 stacked area charts and server-side filtering
feat(ui): move GitHub stars to AppBar linked to repository
feat(ui): pass storageLayout prop to NamespaceTables and NamespaceViews
feat(ui): update Contributing section in README to point to shared CONTRIBUTING.md
fix(ui): remove deprecated GitHub stats chips, quick access cards, and routeToRoles from Home
@coderabbitai
Copy link

coderabbitai bot commented Mar 8, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c65e16cb-aa9b-4ab0-ab08-b5d750a692c3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

The pull request updates the @lakekeeper/console-components dependency from v0.2.31 to v0.3.0, reorganizes the README contributing guide, and integrates new console-components exports into the Home and warehouse pages. Specifically, it adds Community Actions and HomeStatistics components to the Home page, and introduces a Statistics tab with WarehouseStatistics to the warehouse detail page.

Changes

Cohort / File(s) Summary
Documentation
README.md
Contributing section replaced with reference to shared component library's CONTRIBUTING.md; library usage description retained.
Dependencies
package.json
@lakekeeper/console-components version bumped from v0.2.31 to v0.3.0.
Home Component
src/components/Home.vue
Replaced GitHub stats row with Community Actions cards grid (Star, Contribute, Share); removed GitHub data-fetching logic (fetchGitHub, starCount, forksCount); added HomeStatistics component import and usage; added .community-card styling with hover effects.
Warehouse Pages
src/pages/warehouse/[id].namespace.[nsid].vue, src/pages/warehouse/[id].vue
Added storageLayout reactive ref populated from warehouse storage-profile and passed to table/view components; introduced Statistics tab with WarehouseStatistics component, gated by showStatisticsTab permission; wired ref-based loadStatistics() method to trigger statistics loading.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • c-thiel

Poem

🐰 GitHub stars have hopped away,

Community actions now hold sway,

Statistics tabs in warehouses shine,

Dependencies dance to v0.3 time! ✨

Shared components, cleaner guides—

This library fix has rabbit pride! 🌿

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main objective of the changeset - upgrading console-components to v0.3.0, which drives all the component changes throughout the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/console-components-v0.3.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
src/pages/warehouse/[id].namespace.[nsid].vue (1)

239-240: Consider avoiding the as any type assertion.

The type assertion (warehouse['storage-profile'] as any) bypasses TypeScript's type checking. If the library's types don't include storage-layout, consider extending the type definition or using optional chaining with a type guard.

♻️ Suggested alternative using type narrowing
-    storageLayout.value =
-      (warehouse['storage-profile'] as any)?.['storage-layout']?.type || 'default';
+    const profile = warehouse['storage-profile'];
+    storageLayout.value =
+      (profile && 'storage-layout' in profile
+        ? (profile as { 'storage-layout'?: { type?: string } })['storage-layout']?.type
+        : undefined) || 'default';
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/warehouse/`[id].namespace.[nsid].vue around lines 239 - 240,
Replace the unsafe cast and use a proper type or type guard instead of
`(warehouse['storage-profile'] as any)`; define an interface for the storage
profile that includes an optional 'storage-layout' (e.g., StorageProfile {
'storage-layout'?: { type?: string } }) or add an isStorageProfile(obj): obj is
StorageProfile predicate, then set storageLayout.value =
isStorageProfile(warehouse['storage-profile']) ?
warehouse['storage-profile']['storage-layout']?.type ?? 'default' : 'default' so
you keep type safety while preserving the existing fallback behavior.
src/components/Home.vue (1)

311-311: Remove the commented-out import.

This import is no longer used after removing the routeToRoles logic. Commented-out code adds noise and should be cleaned up.

🧹 Suggested cleanup
-// import * as env from '@/app.config';
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/components/Home.vue` at line 311, Remove the dead, commented import
statement "// import * as env from '@/app.config';" from the Home.vue component;
simply delete that commented line so the file no longer contains
unused/commented-out imports and the code stays clean.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/pages/warehouse/`[id].vue:
- Around line 56-62: The Statistics tab currently triggers loadStatistics on
every click via `@click`="loadStatistics", causing redundant API calls; remove the
`@click` from the <v-tab> (the element using showStatisticsTab) and instead invoke
loadStatistics from a watcher on the tab ref (watch tab and call loadStatistics
when newTab === 'statistics'); to avoid repeated fetches add/check a local flag
(e.g., statisticsLoaded) so loadStatistics runs only the first time the tab is
selected, or merge this logic into the existing watcher that already observes
tab.

---

Nitpick comments:
In `@src/components/Home.vue`:
- Line 311: Remove the dead, commented import statement "// import * as env from
'@/app.config';" from the Home.vue component; simply delete that commented line
so the file no longer contains unused/commented-out imports and the code stays
clean.

In `@src/pages/warehouse/`[id].namespace.[nsid].vue:
- Around line 239-240: Replace the unsafe cast and use a proper type or type
guard instead of `(warehouse['storage-profile'] as any)`; define an interface
for the storage profile that includes an optional 'storage-layout' (e.g.,
StorageProfile { 'storage-layout'?: { type?: string } }) or add an
isStorageProfile(obj): obj is StorageProfile predicate, then set
storageLayout.value = isStorageProfile(warehouse['storage-profile']) ?
warehouse['storage-profile']['storage-layout']?.type ?? 'default' : 'default' so
you keep type safety while preserving the existing fallback behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 47c7f927-0009-40e0-86f6-463ec759cea0

📥 Commits

Reviewing files that changed from the base of the PR and between bb83205 and 64a9aa4.

📒 Files selected for processing (5)
  • README.md
  • package.json
  • src/components/Home.vue
  • src/pages/warehouse/[id].namespace.[nsid].vue
  • src/pages/warehouse/[id].vue

@v-kessler v-kessler merged commit c477e37 into main Mar 8, 2026
7 checks passed
@v-kessler v-kessler deleted the feat/console-components-v0.3.0 branch March 8, 2026 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant