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[];