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>
26 lines
645 B
Vue
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>
|