From bce557cc2dc767628bed6aac87301a1be7c5431b Mon Sep 17 00:00:00 2001
From: rxliuli <rxliuli@gmail.com>
Date: Tue, 4 Nov 2025 05:03:50 +0800
Subject: init commit

---
 src/components/jet/shelf/FallbackShelf.svelte | 39 +++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 src/components/jet/shelf/FallbackShelf.svelte

(limited to 'src/components/jet/shelf/FallbackShelf.svelte')

diff --git a/src/components/jet/shelf/FallbackShelf.svelte b/src/components/jet/shelf/FallbackShelf.svelte
new file mode 100644
index 0000000..c7e4200
--- /dev/null
+++ b/src/components/jet/shelf/FallbackShelf.svelte
@@ -0,0 +1,39 @@
+<script lang="ts" context="module">
+    import type { Shelf, ShelfModel } from '@jet-app/app-store/api/models';
+
+    interface FallbackShelf extends Shelf {
+        items: ShelfModel[];
+    }
+
+    export function isFallbackShelf(shelf: Shelf): shelf is FallbackShelf {
+        return Array.isArray(shelf.items);
+    }
+</script>
+
+<script lang="ts">
+    import ShelfItemLayout from '~/components/ShelfItemLayout.svelte';
+    import ShelfWrapper from '~/components/Shelf/Wrapper.svelte';
+
+    export let shelf: FallbackShelf;
+
+    const isPlaceholder = shelf.contentType === 'placeholder';
+</script>
+
+<ShelfWrapper withTopBorder>
+    <ShelfItemLayout {shelf} gridType="C">
+        <div class="wip">
+            {isPlaceholder
+                ? `🔄 Placeholder for ${shelf.placeholderContentType}`
+                : `🚧 ${shelf.contentType}`}
+        </div>
+    </ShelfItemLayout>
+</ShelfWrapper>
+
+<style>
+    .wip {
+        background: #f8f8f8;
+        padding: 16px;
+        border-radius: 8px;
+        border: 1px solid #ccc;
+    }
+</style>
-- 
cgit v1.2.3

