fix(cloud): pin peer file-card filename + action buttons to the bottom (#11)

Make each peer file card a flex column filling its grid cell (flex flex-col
h-full) and pin the body row (filename + Play/Download) with mt-auto, so cards
with a media preview and cards without line their footers up across the row.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-06-16 09:27:29 -04:00
co-authored by Claude Opus 4.8
parent edd03e542d
commit aa9e0f02b7
13 changed files with 631 additions and 15 deletions
+15
View File
@@ -586,6 +586,21 @@ class RPCClient {
})
}
async checkPackageUpdates(): Promise<{
status: string
refreshed: boolean
catalog_apps?: number
error?: string
}> {
// Refreshes the remote app catalog now (decoupled from the binary OTA).
// Per-app `available-update` badges repopulate on the next package scan
// and arrive via the usual WebSocket push.
return this.call({
method: 'package.check-updates',
timeout: 25000,
})
}
async getMarketplace(url: string): Promise<Record<string, unknown>> {
return this.call({
method: 'marketplace.get',
+4 -3
View File
@@ -90,7 +90,7 @@
<div
v-for="item in catalogItems"
:key="item.id"
class="glass-card overflow-hidden"
class="glass-card overflow-hidden flex flex-col h-full"
>
<!-- Media preview (images / videos / audio) -->
<div
@@ -150,8 +150,9 @@
</div>
</div>
<!-- Card body -->
<div class="p-4 flex items-center gap-4">
<!-- Card body pinned to the bottom so the filename + action buttons
line up across cards of differing preview heights. -->
<div class="p-4 flex items-center gap-4 mt-auto">
<div v-if="!isMediaMime(item.mime_type)" class="flex-shrink-0 w-10 h-10 rounded-lg flex items-center justify-center" :class="fileIconBg(item.mime_type)">
<svg class="w-5 h-5" :class="fileIconColor(item.mime_type)" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" :d="fileIconPath(item.mime_type)" />