diff --git a/packages/nc-gui/components/workspace/project/AppMarket.vue b/packages/nc-gui/components/workspace/project/AppMarket.vue index e08be9fe15..34f5516d1c 100644 --- a/packages/nc-gui/components/workspace/project/AppMarket.vue +++ b/packages/nc-gui/components/workspace/project/AppMarket.vue @@ -31,7 +31,13 @@ const selectedCategory = ref(undefined) const categories = computed(() => { const cats = new Set() sandboxes.value.forEach((sb) => { - if (sb.category) cats.add(sb.category) + if (sb.category) { + // Split comma-separated categories + sb.category.split(',').forEach((cat) => { + const trimmed = cat.trim() + if (trimmed) cats.add(trimmed) + }) + } }) return Array.from(cats).sort() }) @@ -40,7 +46,13 @@ const filteredSandboxes = computed(() => { let filtered = sandboxes.value if (selectedCategory.value) { - filtered = filtered.filter((sb) => sb.category === selectedCategory.value) + const selected = selectedCategory.value + filtered = filtered.filter((sb) => { + if (!sb.category) return false + // Check if selected category exists in comma-separated list + const categories = sb.category.split(',').map((c) => c.trim()) + return categories.includes(selected) + }) } if (searchQuery.value) { @@ -216,12 +228,15 @@ watch(

{{ sandbox.title }}

-
- - {{ sandbox.category }} +
+
+ + {{ cat }} +

@@ -346,7 +361,11 @@ watch( } .nc-app-title { - @apply text-base font-semibold text-nc-content-gray-emphasis m-0 truncate; + @apply text-base font-semibold text-nc-content-gray-emphasis m-0 truncate flex-shrink-0; +} + +.nc-app-categories { + @apply flex items-center gap-2 flex-wrap; } .nc-app-category {