Skip to content

Commit 4847835

Browse files
committed
feat: show deprecated label on major version
1 parent 5491a5c commit 4847835

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

app/pages/package/[[org]]/[name]/versions.vue

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const distTags = computed(() => versionSummary.value?.distTags ?? {})
4949
const versionStrings = computed(() => versionSummary.value?.versions ?? [])
5050
const versionTimes = computed(() => versionSummary.value?.time ?? {})
5151
52-
// ─── Phase 2: full metadata (loaded on first group expand) ────────────────────
52+
// ─── Phase 2: full metadata (fired automatically after phase 1 completes) ────
5353
// Fetches deprecated status, provenance, and exact times needed for version rows.
5454
5555
const fullVersionMap = shallowRef<Map<
@@ -100,6 +100,16 @@ const versionGroups = computed(() => {
100100
}))
101101
})
102102
103+
const deprecatedGroupKeys = computed(() => {
104+
if (!fullVersionMap.value) return new Set<string>()
105+
const result = new Set<string>()
106+
for (const group of versionGroups.value) {
107+
if (group.versions.every(v => !!fullVersionMap.value!.get(v)?.deprecated))
108+
result.add(group.groupKey)
109+
}
110+
return result
111+
})
112+
103113
function toggleGroup(groupKey: string) {
104114
if (expandedGroups.value.has(groupKey)) {
105115
expandedGroups.value.delete(groupKey)
@@ -272,8 +282,13 @@ const flatItems = computed<FlatItem[]>(() => {
272282
>{{ latestTagRow!.version }}</LinkBase
273283
>
274284
</div>
275-
<!-- Right: date + provenance -->
285+
<!-- Right: deprecated + date + provenance -->
276286
<div class="flex flex-col items-end gap-1.5 shrink-0 relative z-10">
287+
<span
288+
v-if="fullVersionMap?.get(latestTagRow!.version)?.deprecated"
289+
class="text-3xs font-medium text-red-700 dark:text-red-400 bg-red-100 dark:bg-red-900/30 px-1.5 py-0.5 rounded"
290+
:title="fullVersionMap!.get(latestTagRow!.version)!.deprecated"
291+
>deprecated</span>
277292
<ProvenanceBadge
278293
v-if="fullVersionMap?.get(latestTagRow!.version)?.hasProvenance"
279294
:package-name="packageName"
@@ -323,8 +338,13 @@ const flatItems = computed<FlatItem[]>(() => {
323338
{{ row.version }}
324339
</LinkBase>
325340

326-
<!-- Date + Provenance -->
341+
<!-- Deprecated + Date + Provenance -->
327342
<div class="flex items-center gap-2 shrink-0 relative z-10">
343+
<span
344+
v-if="fullVersionMap?.get(row.version)?.deprecated"
345+
class="text-3xs font-medium text-red-700 dark:text-red-400 bg-red-100 dark:bg-red-900/30 px-1.5 py-0.5 rounded"
346+
:title="fullVersionMap!.get(row.version)!.deprecated"
347+
>deprecated</span>
328348
<DateTime
329349
v-if="getVersionTime(row.version)"
330350
:datetime="getVersionTime(row.version)!"
@@ -399,6 +419,10 @@ const flatItems = computed<FlatItem[]>(() => {
399419
</Transition>
400420
</span>
401421
<span class="text-sm font-medium">{{ item.label }}</span>
422+
<span
423+
v-if="deprecatedGroupKeys.has(item.groupKey)"
424+
class="text-3xs font-medium text-red-700 dark:text-red-400 bg-red-100 dark:bg-red-900/30 px-1.5 py-0.5 rounded"
425+
>deprecated</span>
402426
<span class="text-xs text-fg-subtle">({{ item.versions.length }})</span>
403427
<span class="ms-auto flex items-center gap-3 shrink-0">
404428
<span class="text-xs text-fg-muted" :title="item.versions[0]" dir="ltr">{{

0 commit comments

Comments
 (0)