From af3d208572c9d7a156855834461875a9cd2cc014 Mon Sep 17 00:00:00 2001 From: Eejit <76887639+Eejit43@users.noreply.github.com> Date: Mon, 18 Dec 2023 14:48:35 -0500 Subject: [PATCH] feat(coins-info): support year-varying diameter --- src/public/scripts/pages/info/coins-info.ts | 31 ++++++++++++++++++++- src/route-handlers/coins-list.ts | 2 +- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/public/scripts/pages/info/coins-info.ts b/src/public/scripts/pages/info/coins-info.ts index 5819673..c8e4a28 100644 --- a/src/public/scripts/pages/info/coins-info.ts +++ b/src/public/scripts/pages/info/coins-info.ts @@ -194,7 +194,36 @@ function loadCoinDesignInfo(denomination: CoinDenomination { + if (!design.diameter) return null; + + if (typeof design.diameter === 'number') return `${design.diameter} mm`; + + const listElement = document.createElement('ul'); + + for (const yearRange of design.diameter) { + const listItem = document.createElement('li'); + + if (yearRange.value) listItem.append(`${yearRange.value} mm`); + else { + const unknownSpan = document.createElement('span'); + unknownSpan.dataset.unknown = 'true'; + unknownSpan.textContent = 'Unknown'; + + listItem.append(unknownSpan); + } + + listItem.append(` (${formatYearRange(yearRange.startYear, yearRange.endYear)})`); + + listElement.append(listItem); + } + + return listElement; + }, + }, { icon: 'coin-blank', name: 'Edge', diff --git a/src/route-handlers/coins-list.ts b/src/route-handlers/coins-list.ts index 883d519..8740a26 100644 --- a/src/route-handlers/coins-list.ts +++ b/src/route-handlers/coins-list.ts @@ -23,7 +23,7 @@ export interface CoinDesign { active?: true; composition: { amounts: CoinComposition[] } | { amounts: CoinComposition[]; startYear: number; endYear?: number }[]; mass: number | null | { value: number | null; startYear: number; endYear?: number }[]; - diameter: number; + diameter: number | null | { value: number | null; startYear: number; endYear?: number }[]; edge: string | { reeds: number } | { value: string | { reeds: number }; startYear: number; endYear?: number }[]; numistaEntry: number | number[] | false; wikipediaArticle: string | string[];