archy/neode-ui/src/components/OnlineStatusPill.vue
Dorian a2aa9657b1 fix: prevent My Apps crash when installing apps + add filebrowser to demo
The My Apps page went blank after installing apps because pkg['static-files'].icon
was accessed without optional chaining on dynamically installed packages that lack
the static-files property.

- Make static-files optional in PackageDataEntry type
- Add defensive ?.icon access with fallback in Apps.vue and AppDetails.vue
- Add filebrowser to mock backend staticDevApps (enables Cloud page in demo)
- Expand portMappings and marketplaceMetadata for all marketplace apps
- installPackage now uses staticApp() format for consistent data shape

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:09:59 +00:00

26 lines
645 B
Vue

<template>
<button
type="button"
data-controller-ignore
class="w-full flex items-center gap-2 text-white/80 hover:text-white transition-colors"
title="Open CLI (F)"
@click="openCLI"
>
<div class="relative shrink-0">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<div class="absolute inset-0 w-2 h-2 rounded-full bg-green-400 animate-ping opacity-50"></div>
</div>
<span class="text-xs font-medium">Online</span>
</button>
</template>
<script setup lang="ts">
import { useCLIStore } from '@/stores/cli'
const cliStore = useCLIStore()
function openCLI() {
cliStore.open()
}
</script>