From 2c0ff2b9ce26272ba870b386f31bc588642e8a5a Mon Sep 17 00:00:00 2001 From: user_1781515504933 Date: Thu, 8 Oct 2026 15:31:28 +0700 Subject: [PATCH] Add Noir Gear M1-NEX artwork mapping --- src/ui/device-images.test.ts | 8 ++++++++ src/ui/device-images.ts | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/ui/device-images.test.ts b/src/ui/device-images.test.ts index 5ac37e44..3607d8d3 100644 --- a/src/ui/device-images.test.ts +++ b/src/ui/device-images.test.ts @@ -256,6 +256,14 @@ test("Noir Gear M2-NEX resolves to its maintainer-hosted artwork", () => { assert.equal(deviceImage(null, "NOIR E1"), CDN + "noir-e1.png"); }); +test("Noir Gear M1-NEX resolves to its reserved maintainer-hosted artwork", () => { + assert.equal(deviceImage(null, "M1-NEX"), CDN + "noir-m1-nex.png"); + assert.equal(deviceImage(null, "Noir Gear M1-NEX"), CDN + "noir-m1-nex.png"); + // Neighboring Noir Gear models must not match the M1-NEX render. + assert.equal(deviceImage(null, "Noir M1"), CDN + "unknown-device.png"); + assert.equal(deviceImage(null, "Noir M1 Lite"), CDN + "unknown-device.png"); +}); + test("Noir S1 resolves to the reserved maintainer-hosted artwork filename", () => { assert.equal(deviceImage(null, "NOIR S1"), CDN + "noir-s1.png"); assert.equal(deviceImage(null, "Noir Gear / NOIR S1"), CDN + "noir-s1.png"); diff --git a/src/ui/device-images.ts b/src/ui/device-images.ts index 30f00c5e..01431f92 100644 --- a/src/ui/device-images.ts +++ b/src/ui/device-images.ts @@ -173,6 +173,9 @@ function resolveDeviceImageFilename(_device: HIDDevice | null | undefined, displ // retail shell. Keep its artwork match name-based so USB and 2.4 GHz // receiver connections resolve to the same product image. if (/m2\s*[-_]?\s*nex/i.test(displayName)) return "noir-m2-nex.png"; + // M1-NEX wired support uses Noir Gear's own reported model name. Match the + // full model token so Noir M1 and M1 Lite keep their own artwork/placeholder. + if (/\bm1\s*[-_]?\s*nex\b/i.test(displayName)) return "noir-m1-nex.png"; if (/\bnoir\s*e1\b/i.test(displayName)) return "noir-e1.png"; if (/fantech/i.test(displayName)) return "unknown-device.png"; return "unknown-device.png";