Skip to content

Commit 79f4834

Browse files
committed
perf: avoid unnecessary process
1 parent da26851 commit 79f4834

3 files changed

Lines changed: 14 additions & 11 deletions

File tree

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

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ function sortTagRows(rows: TaggedVersionRow[]): TaggedVersionRow[] {
160160
return [...rows].sort((rowA, rowB) => {
161161
const timeA = versionTimes.value[rowA.version] ?? ''
162162
const timeB = versionTimes.value[rowB.version] ?? ''
163-
return dir * timeB.localeCompare(timeA)
163+
return dir * (timeB < timeA ? -1 : timeB > timeA ? 1 : 0)
164164
})
165165
}
166166
return [...rows].sort((rowA, rowB) => compareTagRows(rowA, rowB, versionTimes.value))
@@ -242,15 +242,14 @@ const showHiddenTags = ref(false)
242242
const visibleVersionGroups = computed(() => {
243243
if (showPrereleases.value && showDeprecated.value) return versionGroups.value
244244
return versionGroups.value
245-
.map(group =>
246-
Object.assign({}, group, {
247-
versions: group.versions.filter(v => {
248-
if (!showPrereleases.value && isPrereleaseVersion(v)) return false
249-
if (!showDeprecated.value && fullVersionMap.value?.get(v)?.deprecated) return false
250-
return true
251-
}),
252-
}),
253-
)
245+
.map(group => {
246+
const versions = group.versions.filter(v => {
247+
if (!showPrereleases.value && isPrereleaseVersion(v)) return false
248+
if (!showDeprecated.value && fullVersionMap.value?.get(v)?.deprecated) return false
249+
return true
250+
})
251+
return versions.length === group.versions.length ? group : { ...group, versions }
252+
})
254253
.filter(group => group.versions.length > 0)
255254
})
256255
@@ -342,7 +341,7 @@ const flatItems = computed<FlatItem[]>(() => {
342341
<div
343342
class="flex items-center gap-1"
344343
role="group"
345-
:aria-label="$t('package.versions.page_title')"
344+
:aria-label="$t('package.versions.filter_controls')"
346345
>
347346
<TooltipApp :text="$t('package.versions.show_prereleases')" position="bottom">
348347
<button

i18n/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,7 @@
571571
"page_title": "Version History",
572572
"current_tags": "Current Tags",
573573
"no_match_filter": "No versions match {filter}",
574+
"filter_controls": "Version filter controls",
574575
"show_prereleases": "Show pre-releases",
575576
"show_deprecated": "Show deprecated",
576577
"sort_tags_by_priority": "Sort by tag",

i18n/schema.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1717,6 +1717,9 @@
17171717
"no_match_filter": {
17181718
"type": "string"
17191719
},
1720+
"filter_controls": {
1721+
"type": "string"
1722+
},
17201723
"show_prereleases": {
17211724
"type": "string"
17221725
},

0 commit comments

Comments
 (0)