Skip to content

Commit 1d082de

Browse files
committed
version ordering and Flasher border
1 parent 7041eff commit 1d082de

File tree

4 files changed

+72
-8
lines changed

4 files changed

+72
-8
lines changed

assets/js/catalog.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,21 @@
11
"use strict";
2+
const getPublishedTimestamp = (value) => {
3+
if (!value) {
4+
return Number.NEGATIVE_INFINITY;
5+
}
6+
const timestamp = Date.parse(value);
7+
return Number.isNaN(timestamp) ? Number.NEGATIVE_INFINITY : timestamp;
8+
};
9+
const sortVersionsByPublishedDate = (versions) => {
10+
return [...versions].sort((a, b) => {
11+
const aTime = getPublishedTimestamp(a.published_at);
12+
const bTime = getPublishedTimestamp(b.published_at);
13+
if (aTime !== bTime) {
14+
return bTime - aTime;
15+
}
16+
return 0;
17+
});
18+
};
219
const API_URL = "https://api.launcherhub.net/giveMeTheList";
320
const CDN_COVER = "https://m5burner-cdn.m5stack.com/cover/";
421
const CDN_FIRMWARE = "https://m5burner-cdn.m5stack.com/firmware/";
@@ -324,7 +341,11 @@ document.addEventListener("DOMContentLoaded", () => {
324341
});
325342
};
326343
const hydrate = (entries) => {
327-
firmware = entries.filter((item) => Array.isArray(item.versions) && item.versions.some((version) => Boolean(version.file)));
344+
const sortedEntries = entries.map((item) => ({
345+
...item,
346+
versions: sortVersionsByPublishedDate(item.versions ?? [])
347+
}));
348+
firmware = sortedEntries.filter((item) => Array.isArray(item.versions) && item.versions.some((version) => Boolean(version.file)));
328349
filtered = [...firmware];
329350
populateCategories();
330351
applyFilters();

assets/js/webflasher.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ const registerInstallDialogPatch = () => {
548548
document.querySelectorAll("ewt-install-dialog").forEach((dialog) => themeInstallDialog(dialog));
549549
};
550550
const injectDialogSurfaceStyles = (dialog) => {
551-
if (!dialog || !dialog.closest(".page-webflasher")) {
551+
if (!dialog) {
552552
return;
553553
}
554554
const shadow = dialog.shadowRoot;
@@ -559,13 +559,23 @@ const injectDialogSurfaceStyles = (dialog) => {
559559
style.id = "webflasher-ew-dialog-style";
560560
style.textContent = `
561561
dialog {
562+
background: transparent;
563+
border: none;
564+
padding: 0;
565+
}
566+
.container {
567+
box-sizing: border-box;
562568
background: rgba(12, 18, 21, 0.96);
563569
border-radius: var(--radius-lg, 24px);
564-
border: 1px solid rgba(0, 221, 0, 0.24);
570+
border: 1px solid var(--primary, #00dd00);
565571
box-shadow: 0 34px 120px rgba(0, 221, 0, 0.25);
566572
backdrop-filter: blur(24px);
567573
color: var(--text);
568-
padding: 24px 28px 28px;
574+
// padding: 24px 28px 28px;
575+
}
576+
.container::before {
577+
background: rgba(12, 18, 21, 0.96);
578+
border-radius: inherit;
569579
}
570580
dialog::backdrop {
571581
background: rgba(6, 10, 12, 0.7);

src/catalog.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,25 @@ type FirmwareEntry = {
1616
versions: FirmwareVersion[];
1717
};
1818

19+
const getPublishedTimestamp = (value: string | undefined) => {
20+
if (!value) {
21+
return Number.NEGATIVE_INFINITY;
22+
}
23+
const timestamp = Date.parse(value);
24+
return Number.isNaN(timestamp) ? Number.NEGATIVE_INFINITY : timestamp;
25+
};
26+
27+
const sortVersionsByPublishedDate = (versions: FirmwareVersion[]) => {
28+
return [...versions].sort((a, b) => {
29+
const aTime = getPublishedTimestamp(a.published_at);
30+
const bTime = getPublishedTimestamp(b.published_at);
31+
if (aTime !== bTime) {
32+
return bTime - aTime;
33+
}
34+
return 0;
35+
});
36+
};
37+
1938
const API_URL = "https://api.launcherhub.net/giveMeTheList";
2039
const CDN_COVER = "https://m5burner-cdn.m5stack.com/cover/";
2140
const CDN_FIRMWARE = "https://m5burner-cdn.m5stack.com/firmware/";
@@ -392,7 +411,12 @@ document.addEventListener("DOMContentLoaded", () => {
392411
};
393412

394413
const hydrate = (entries: FirmwareEntry[]) => {
395-
firmware = entries.filter(
414+
const sortedEntries = entries.map((item) => ({
415+
...item,
416+
versions: sortVersionsByPublishedDate(item.versions ?? [])
417+
}));
418+
419+
firmware = sortedEntries.filter(
396420
(item) => Array.isArray(item.versions) && item.versions.some((version) => Boolean(version.file))
397421
);
398422
filtered = [...firmware];

src/webflasher.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ type EwDialogElement = HTMLElement & {
625625
};
626626

627627
const injectDialogSurfaceStyles = (dialog: EwDialogElement) => {
628-
if (!dialog || !dialog.closest(".page-webflasher")) {
628+
if (!dialog) {
629629
return;
630630
}
631631

@@ -638,13 +638,22 @@ const injectDialogSurfaceStyles = (dialog: EwDialogElement) => {
638638
style.id = "webflasher-ew-dialog-style";
639639
style.textContent = `
640640
dialog {
641+
background: transparent;
642+
border: none;
643+
padding: 0;
644+
}
645+
.container {
646+
box-sizing: border-box;
641647
background: rgba(12, 18, 21, 0.96);
642648
border-radius: var(--radius-lg, 24px);
643-
border: 1px solid rgba(0, 221, 0, 0.24);
649+
border: 1px solid var(--primary, #00dd00);
644650
box-shadow: 0 34px 120px rgba(0, 221, 0, 0.25);
645651
backdrop-filter: blur(24px);
646652
color: var(--text);
647-
padding: 24px 28px 28px;
653+
}
654+
.container::before {
655+
background: rgba(12, 18, 21, 0.96);
656+
border-radius: inherit;
648657
}
649658
dialog::backdrop {
650659
background: rgba(6, 10, 12, 0.7);

0 commit comments

Comments
 (0)