Compare commits
2 Commits
bf8110af6c
...
c3410de1d7
| Author | SHA1 | Date | |
|---|---|---|---|
| c3410de1d7 | |||
| a23c514102 |
@@ -103,22 +103,21 @@ const ogImage = await getImage({
|
|||||||
<LanguageWarning/>
|
<LanguageWarning/>
|
||||||
)}
|
)}
|
||||||
<Content/>
|
<Content/>
|
||||||
<script is:inline data-astro-rerun>
|
<script>
|
||||||
import FightTable from "@components/FightTable.svelte";
|
import FightTable from "@components/FightTable.svelte";
|
||||||
import {get} from "svelte/store";
|
import {get} from "svelte/store";
|
||||||
import GroupTable from "@components/GroupTable.svelte";
|
import GroupTable from "@components/GroupTable.svelte";
|
||||||
import {eventRepo} from "../../components/repo/event";
|
import {eventRepo} from "../../components/repo/event";
|
||||||
|
import type {ExtendedEvent} from "@type/event";
|
||||||
import {mount} from "svelte";
|
import {mount} from "svelte";
|
||||||
|
|
||||||
const eventMounts = new Map();
|
const eventMounts: Map<string, Promise<ExtendedEvent>> = new Map();
|
||||||
|
|
||||||
class FightTableElement extends HTMLElement {
|
class FightTableElement extends HTMLElement {
|
||||||
connectedCallback() {
|
connectedCallback(): void {
|
||||||
if (!eventMounts.has(this.dataset["event"])) {
|
loadEvent(this.dataset["event"]!);
|
||||||
eventMounts.set(this.dataset["event"], []);
|
const rows = Number.parseInt(this.dataset["rows"]!);
|
||||||
}
|
eventMounts.get(this.dataset["event"]!)!.then(ev => {
|
||||||
const rows = Number.parseInt(this.dataset["rows"]);
|
|
||||||
eventMounts.get(this.dataset["event"]).push(ev => {
|
|
||||||
mount(FightTable, {
|
mount(FightTable, {
|
||||||
target: this,
|
target: this,
|
||||||
props: {
|
props: {
|
||||||
@@ -132,12 +131,10 @@ const ogImage = await getImage({
|
|||||||
}
|
}
|
||||||
|
|
||||||
class GroupTableElement extends HTMLElement {
|
class GroupTableElement extends HTMLElement {
|
||||||
connectedCallback() {
|
connectedCallback(): void {
|
||||||
if (!eventMounts.has(this.dataset["event"])) {
|
loadEvent(this.dataset["event"]!);
|
||||||
eventMounts.set(this.dataset["event"], []);
|
const rows = Number.parseInt(this.dataset["rows"]!);
|
||||||
}
|
eventMounts.get(this.dataset["event"]!)!.then(ev => {
|
||||||
const rows = Number.parseInt(this.dataset["rows"]);
|
|
||||||
eventMounts.get(this.dataset["event"]).push(ev => {
|
|
||||||
mount(GroupTable, {
|
mount(GroupTable, {
|
||||||
target: this,
|
target: this,
|
||||||
props: {
|
props: {
|
||||||
@@ -153,17 +150,13 @@ const ogImage = await getImage({
|
|||||||
customElements.define("fight-table", FightTableElement);
|
customElements.define("fight-table", FightTableElement);
|
||||||
customElements.define("group-table", GroupTableElement);
|
customElements.define("group-table", GroupTableElement);
|
||||||
|
|
||||||
function mountEvent() {
|
function loadEvent(id: string) {
|
||||||
for (const key of eventMounts.keys()) {
|
if (!eventMounts.has(id)) {
|
||||||
get(eventRepo).getEvent(key).then(ev => {
|
eventMounts.set(id, get(eventRepo).getEvent(id));
|
||||||
for (const mount of eventMounts.get(key)) {
|
|
||||||
mount(ev);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mountEvent();
|
document.addEventListener("astro:before-swap", eventMounts.clear);
|
||||||
</script>
|
</script>
|
||||||
</article>
|
</article>
|
||||||
</PageLayout>
|
</PageLayout>
|
||||||
|
|||||||
Reference in New Issue
Block a user