Skip to content

Commit 3cb190b

Browse files
committed
fix(mystrixsim-webui): sort firmware releases newest first
1 parent cf13063 commit 3cb190b

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

Devices/MystrixSim/WebUI/src/components/FirmwarePage.svelte

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,19 @@
182182
return `${date.getUTCFullYear()}-${pad(date.getUTCMonth() + 1)}-${pad(date.getUTCDate())} ${pad(date.getUTCHours())}:${pad(date.getUTCMinutes())} UTC`
183183
}
184184
185+
function parseReleaseTimestamp(value) {
186+
const text = String(value || '').trim()
187+
if (!text) return 0
188+
189+
const date = new Date(text)
190+
return Number.isNaN(date.getTime()) ? 0 : date.getTime()
191+
}
192+
185193
function expandRelease(release) {
186194
if (release?.draft) return []
187195
188196
const releaseName = release?.name || release?.tag_name || 'Matrix OS Release'
197+
const releaseTimestamp = parseReleaseTimestamp(release?.published_at || release?.created_at)
189198
190199
return (release?.assets || [])
191200
.filter((asset) => hasFirmwarePackageSuffix(asset?.name) && /MystrixSim/i.test(asset.name))
@@ -196,6 +205,7 @@
196205
version: release?.tag_name || '—',
197206
buildHash: extractBuildHash(release?.tag_name, asset?.name, release?.target_commitish),
198207
date: formatReleaseDateTime(release?.published_at || release?.created_at),
208+
releaseTimestamp,
199209
assetName: asset.name,
200210
assetApiUrl: asset.url,
201211
assetDownloadUrl: asset.browser_download_url,
@@ -220,7 +230,14 @@
220230
throw new Error('GitHub releases returned an unexpected payload.')
221231
}
222232
223-
releaseFirmware = payload.flatMap(expandRelease)
233+
releaseFirmware = payload
234+
.flatMap(expandRelease)
235+
.sort((left, right) => {
236+
if (right.releaseTimestamp !== left.releaseTimestamp) {
237+
return right.releaseTimestamp - left.releaseTimestamp
238+
}
239+
return String(left.assetName || '').localeCompare(String(right.assetName || ''))
240+
})
224241
} catch (error) {
225242
releaseFirmware = []
226243
releasesError = error instanceof Error ? error.message : String(error)

0 commit comments

Comments
 (0)