feat: module lorebook sort, import, export

This commit is contained in:
bangonicdd
2025-04-19 17:00:18 +09:00
parent 21561fe5ff
commit 5f1d63dcfb
3 changed files with 80 additions and 13 deletions

View File

@@ -11,9 +11,10 @@
globalMode?: boolean;
submenu?: number;
lorePlus?: boolean;
externalLoreBooks?: loreBook[];
}
let { globalMode = false, submenu = 0, lorePlus = false }: Props = $props();
let { globalMode = false, submenu = 0, lorePlus = false, externalLoreBooks = null }: Props = $props();
let stb: Sortable = null
let ele: HTMLDivElement = $state()
let sorted = $state(0)
@@ -31,6 +32,13 @@
})
DBState.db.loreBook[DBState.db.loreBookPage].data = newLore
}
else if(externalLoreBooks){
let newLore:loreBook[] = []
idx.forEach((i) => {
newLore.push(externalLoreBooks[i])
})
externalLoreBooks = newLore
}
else if(submenu === 1){
let newLore:loreBook[] = []
idx.forEach((i) => {
@@ -97,6 +105,18 @@
}} onOpen={onOpen} onClose={onClose}/>
{/each}
{/if}
{:else if externalLoreBooks}
{#if externalLoreBooks.length === 0}
<span class="text-textcolor2">No Lorebook</span>
{:else}
{#each externalLoreBooks as book, i}
<LoreBookData bind:value={externalLoreBooks[i]} idx={i} onRemove={() => {
let lore = externalLoreBooks
lore.splice(i, 1)
externalLoreBooks = lore
}} onOpen={onOpen} onClose={onClose}/>
{/each}
{/if}
{:else if submenu === 0}
{#if DBState.db.characters[$selectedCharID].globalLore.length === 0}
<span class="text-textcolor2">No Lorebook</span>