[refactor] backgroundDom

This commit is contained in:
kwaroran
2023-06-06 07:27:18 +09:00
parent 9435675b26
commit eac4f56213

View File

@@ -1,13 +1,49 @@
<script lang="ts"> <script lang="ts">
import { ParseMarkdown } from "src/ts/parser"; import { ParseMarkdown } from "src/ts/parser";
import { DataBase } from "src/ts/storage/database"; import { DataBase, type Database, type character, type groupChat } from "src/ts/storage/database";
import { selectedCharID } from "src/ts/stores"; import { selectedCharID } from "src/ts/stores";
import { onDestroy } from "svelte";
let backgroundHTML = ''
let lastdb:Database
let currentChar:character|groupChat
let selectedId = 0
function checkUpdate(){
if(selectedId > 0 && lastdb){
if(lastdb.characters[selectedId].backgroundHTML !== backgroundHTML){
backgroundHTML = lastdb.characters[selectedId].backgroundHTML
currentChar = lastdb.characters[selectedId]
}
}
else{
if(backgroundHTML !== ''){
backgroundHTML = ''
}
}
}
const unsubDatabase = DataBase.subscribe(v => {
lastdb = v
checkUpdate()
})
const unsubID = selectedCharID.subscribe(v => {
selectedId = v
checkUpdate()
})
onDestroy(() => {
unsubDatabase()
unsubID()
})
</script> </script>
{#if $selectedCharID > 0 && $DataBase.characters[$selectedCharID].backgroundHTML} {#if backgroundHTML}
<div class="absolute top-0 left-0 w-full h-full"> <div class="absolute top-0 left-0 w-full h-full">
{#await ParseMarkdown($DataBase.characters[$selectedCharID].backgroundHTML, $DataBase.characters[$selectedCharID], 'back') then md} {#await ParseMarkdown(backgroundHTML, currentChar, 'back') then md}
{@html md} {@html md}
{/await} {/await}
</div> </div>