From ff7e4f7b2e6af70e4a73de4fc7ca53c44f315fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Tue, 6 May 2025 15:04:44 +0200 Subject: [PATCH] feat: add version changelog support --- src/lib/meta/meta-storage.ts | 5 +- src/lib/meta/types/meta.ts | 12 +++++ .../ccos/[device]/[version]/+page.svelte | 49 ++++++++++++++++++- 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/src/lib/meta/meta-storage.ts b/src/lib/meta/meta-storage.ts index 2449bb67..77dcefe2 100644 --- a/src/lib/meta/meta-storage.ts +++ b/src/lib/meta/meta-storage.ts @@ -17,7 +17,7 @@ export async function getMeta( try { if (!browser) return fetchMeta(device, version, fetch); - const dbRequest = indexedDB.open("version-meta", 3); + const dbRequest = indexedDB.open("version-meta", 4); const db = await new Promise((resolve, reject) => { dbRequest.onsuccess = () => resolve(dbRequest.result); dbRequest.onerror = () => reject(dbRequest.error); @@ -120,6 +120,9 @@ async function fetchMeta( } return settings; })), + changelog: await (meta?.changelog + ? fetch(`${path}/${meta.changelog}`).then((it) => it.json()) + : {}), actions: await (meta?.actions ? fetch(`${path}/${meta.actions}`).then((it) => it.json()) : Promise.all( diff --git a/src/lib/meta/types/meta.ts b/src/lib/meta/types/meta.ts index 729ea862..a008aa0f 100644 --- a/src/lib/meta/types/meta.ts +++ b/src/lib/meta/types/meta.ts @@ -22,6 +22,16 @@ export interface SettingsItemMeta { scale?: number; } +export interface ChangelogEntry { + summary: string; + description: string; +} + +export interface Changelog { + features: ChangelogEntry[]; + fixes: ChangelogEntry[]; +} + export interface RawVersionMeta { version: string; target: string; @@ -32,6 +42,7 @@ export interface RawVersionMeta { development_mode: number; actions: string; settings: string; + changelog: string; factory_defaults: { layout: string; settings: string; @@ -57,6 +68,7 @@ export interface VersionMeta { developmentBuild: boolean; actions: KeymapCategory[]; settings: SettingsMeta[]; + changelog: Changelog; factoryDefaults?: { layout: CharaLayoutFile; settings: CharaSettingsFile; diff --git a/src/routes/(app)/ccos/[device]/[version]/+page.svelte b/src/routes/(app)/ccos/[device]/[version]/+page.svelte index 018f46b2..7c70bb6d 100644 --- a/src/routes/(app)/ccos/[device]/[version]/+page.svelte +++ b/src/routes/(app)/ccos/[device]/[version]/+page.svelte @@ -319,11 +319,56 @@ {/if} + +
+

Changelog

+ {#if data.meta.changelog.features} +

Features

+
    + {#each data.meta.changelog.features as feature} +
  • + {@html feature.summary} + {@html feature.description} +
  • + {/each} +
+ {/if} + {#if data.meta.changelog.fixes} +

Fixes

+
    + {#each data.meta.changelog.fixes as fix} +
  • + {@html fix.summary} + {@html fix.description} +
  • + {/each} +
+ {/if} +