Refactor event mounts and update script management.
All checks were successful
SteamWarCI Build successful

This commit is contained in:
2025-02-23 12:18:58 +01:00
parent 349f71af1c
commit bf8110af6c

View File

@ -103,23 +103,22 @@ const ogImage = await getImage({
<LanguageWarning/>
)}
<Content/>
<script>
<script is:inline data-astro-rerun>
import FightTable from "@components/FightTable.svelte";
import {get} from "svelte/store";
import GroupTable from "@components/GroupTable.svelte";
import {eventRepo} from "../../components/repo/event";
import type {ExtendedEvent} from "@type/event";
import {mount} from "svelte";
const eventMounts: Map<string, ((ev: ExtendedEvent) => void)[]> = new Map();
const eventMounts = new Map();
class FightTableElement extends HTMLElement {
connectedCallback(): void {
if (!eventMounts.has(this.dataset["event"]!)) {
eventMounts.set(this.dataset["event"]!, []);
connectedCallback() {
if (!eventMounts.has(this.dataset["event"])) {
eventMounts.set(this.dataset["event"], []);
}
const rows = Number.parseInt(this.dataset["rows"]!);
eventMounts.get(this.dataset["event"]!)!.push(ev => {
const rows = Number.parseInt(this.dataset["rows"]);
eventMounts.get(this.dataset["event"]).push(ev => {
mount(FightTable, {
target: this,
props: {
@ -133,12 +132,12 @@ const ogImage = await getImage({
}
class GroupTableElement extends HTMLElement {
connectedCallback(): void {
if (!eventMounts.has(this.dataset["event"]!)) {
eventMounts.set(this.dataset["event"]!, []);
connectedCallback() {
if (!eventMounts.has(this.dataset["event"])) {
eventMounts.set(this.dataset["event"], []);
}
const rows = Number.parseInt(this.dataset["rows"]!);
eventMounts.get(this.dataset["event"]!)!.push(ev => {
const rows = Number.parseInt(this.dataset["rows"]);
eventMounts.get(this.dataset["event"]).push(ev => {
mount(GroupTable, {
target: this,
props: {
@ -157,15 +156,14 @@ const ogImage = await getImage({
function mountEvent() {
for (const key of eventMounts.keys()) {
get(eventRepo).getEvent(key).then(ev => {
for (const mount of eventMounts.get(key)!) {
for (const mount of eventMounts.get(key)) {
mount(ev);
}
});
}
}
document.addEventListener("astro:page-load", mountEvent);
document.addEventListener("astro:before-swap", eventMounts.clear);
mountEvent();
</script>
</article>
</PageLayout>