diff --git a/resources/lang/en.json b/resources/lang/en.json index 38c3af1ee..92111a61b 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -24,6 +24,8 @@ "wiki": "Wiki" }, "news": { + "full_changelog": "See the complete change log", + "github_link": "on GitHub", "title": "Version 23 released!" }, "help_modal": { diff --git a/src/client/Main.ts b/src/client/Main.ts index f3e0598ac..4eb9c8c82 100644 --- a/src/client/Main.ts +++ b/src/client/Main.ts @@ -1,4 +1,5 @@ import favicon from "../../resources/images/Favicon.svg"; +import version from "../../resources/version.txt"; import { GameRecord, GameStartInfo, ID } from "../core/Schemas"; import { getServerConfigFromClient } from "../core/configuration/ConfigLoader"; import { GameType } from "../core/game/Game"; @@ -64,9 +65,7 @@ class Client { if (!gameVersion) { console.warn("Game version element not found"); } - fetch("/version.txt") - .then((response) => (response.ok ? response.text() : "Failed to load")) - .then((version) => (gameVersion.innerText = version)); + gameVersion.innerText = version; const newsModal = document.querySelector("news-modal") as NewsModal; if (!newsModal) { @@ -79,9 +78,6 @@ class Client { } else { console.log("News button element found"); } - fetch("/changelog.md") - .then((response) => (response.ok ? response.text() : "Failed to load")) - .then((changelog) => (newsModal.markdown = changelog)); // Comment out to show news button. // newsButton.hidden = true; diff --git a/src/client/NewsModal.ts b/src/client/NewsModal.ts index 4f08b2ee1..5469bf093 100644 --- a/src/client/NewsModal.ts +++ b/src/client/NewsModal.ts @@ -1,6 +1,7 @@ import { LitElement, css, html } from "lit"; import { resolveMarkdown } from "lit-markdown"; import { customElement, property, query } from "lit/decorators.js"; +import changelog from "../../resources/changelog.md"; import { translateText } from "../client/Utils"; import "./components/baseComponents/Button"; import "./components/baseComponents/Modal"; @@ -14,6 +15,8 @@ export class NewsModal extends LitElement { @property({ type: String }) markdown = "Loading..."; + private initialized: boolean = false; + static styles = css` :host { display: block; @@ -63,6 +66,15 @@ export class NewsModal extends LitElement { +
+ ${translateText("news.full_changelog")} + ${translateText("news.github_link")}. +
+ (response.ok ? response.text() : "Failed to load")) + .then((markdown) => (this.markdown = markdown)); + } this.requestUpdate(); this.modalEl?.open(); } diff --git a/src/global.d.ts b/src/global.d.ts index d0380a773..e100dde8e 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -24,6 +24,10 @@ declare module "*.bin" { const value: string; export default value; } +declare module "*.md" { + const value: string; + export default value; +} declare module "*.txt" { const value: string; export default value; diff --git a/webpack.config.js b/webpack.config.js index 3f6d28936..78721528f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -34,6 +34,10 @@ export default async (env, argv) => { }, { test: /\.txt$/, + type: "asset/source", + }, + { + test: /\.md$/, type: "asset/resource", // Changed from raw-loader generator: { filename: "text/[name].[contenthash][ext]", // Added content hash