feat: Discover view, Fleet dashboard, MeshMap, type fixes

- New Discover.vue (app store redesign)
- Fleet.vue dashboard for .228
- MeshMap.vue component
- Fixed Discover.vue type errors (unused var, type predicate)
- Various UI updates (Apps, Dashboard, Marketplace, Mesh, Web5)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-19 16:12:01 +00:00
co-authored by Claude Opus 4.6
parent 851d8001d6
commit 623c0fa954
18 changed files with 3067 additions and 174 deletions
+4 -6
View File
@@ -6,13 +6,14 @@
<div class="hidden md:flex mb-6 items-center gap-4">
<div class="mode-switcher flex-shrink-0">
<RouterLink to="/dashboard/apps" class="mode-switcher-btn">My Apps</RouterLink>
<RouterLink to="/dashboard/marketplace" class="mode-switcher-btn mode-switcher-btn-active">App Store</RouterLink>
<RouterLink to="/dashboard/discover" class="mode-switcher-btn mode-switcher-btn-active">App Store</RouterLink>
<RouterLink to="/dashboard/apps?tab=services" class="mode-switcher-btn">Services</RouterLink>
</div>
<div class="mode-switcher flex-shrink-0">
<RouterLink
to="/dashboard/discover"
class="mode-switcher-btn mode-switcher-btn-active"
class="mode-switcher-btn"
:class="{ 'mode-switcher-btn-active': $route.path === '/dashboard/discover' }"
>Discover</RouterLink>
<button
v-for="category in categoriesWithApps"
@@ -670,9 +671,6 @@ const categoriesWithApps = computed(() => {
})
})
const currentCategoryName = computed(() => {
return categories.value.find(c => c.id === selectedCategory.value)?.name || 'All'
})
const filteredApps = computed(() => {
let apps = allApps.value
@@ -727,7 +725,7 @@ const featuredApps = computed<FeaturedApp[]>(() => {
.map(f => {
const app = allApps.value.find(a => a.id === f.id)
if (!app) return null
return { ...app, featuredDescription: f.desc, privacyTag: f.tag }
return { ...app, featuredDescription: f.desc, privacyTag: f.tag } as FeaturedApp
})
.filter((a): a is FeaturedApp => a !== null)
})