From 73003c115d3c206efbf48a09dd3b6ce1fd2848cf Mon Sep 17 00:00:00 2001
From: Bo26fhmC5M <88071760+Bo26fhmC5M@users.noreply.github.com>
Date: Sat, 8 Feb 2025 22:37:26 +0900
Subject: [PATCH 1/2] feat: add global toggle buttons for lorebook
always-active state - Add buttons to toggle all character/chat lorebooks'
always-active state at once - Show SunIcon when all lorebooks are active,
LinkIcon otherwise
---
.../SideBars/LoreBook/LoreBookSetting.svelte | 58 ++++++++++++++++++-
1 file changed, 56 insertions(+), 2 deletions(-)
diff --git a/src/lib/SideBars/LoreBook/LoreBookSetting.svelte b/src/lib/SideBars/LoreBook/LoreBookSetting.svelte
index 6e942df0..108a03e9 100644
--- a/src/lib/SideBars/LoreBook/LoreBookSetting.svelte
+++ b/src/lib/SideBars/LoreBook/LoreBookSetting.svelte
@@ -2,13 +2,13 @@
import { DBState } from 'src/ts/stores.svelte';
import { language } from "../../../lang";
- import { DownloadIcon, FolderUpIcon, ImportIcon, PlusIcon } from "lucide-svelte";
+ import { DownloadIcon, FolderUpIcon, ImportIcon, PlusIcon, SunIcon, LinkIcon } from "lucide-svelte";
import { addLorebook, exportLoreBook, importLoreBook } from "../../../ts/process/lorebook.svelte";
import Check from "../../UI/GUI/CheckInput.svelte";
import NumberInput from "../../UI/GUI/NumberInput.svelte";
import LoreBookList from "./LoreBookList.svelte";
import Help from "src/lib/Others/Help.svelte";
- import { selectedCharID } from "src/ts/stores.svelte";
+ import { selectedCharID } from "src/ts/stores.svelte";
let submenu = $state(0)
interface Props {
@@ -16,6 +16,40 @@
}
let { globalMode = $bindable(false) }: Props = $props();
+
+ function isAllCharacterLoreAlwaysActive() {
+ const globalLore = DBState.db.characters[$selectedCharID].globalLore;
+ return globalLore && globalLore.every((book) => book.alwaysActive);
+ }
+
+ function isAllChatLoreAlwaysActive() {
+ const localLore = DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].localLore;
+ return localLore && localLore.every((book) => book.alwaysActive);
+ }
+
+ function toggleCharacterLoreAlwaysActive() {
+ const globalLore = DBState.db.characters[$selectedCharID].globalLore;
+
+ if (!globalLore) return;
+
+ const allActive = globalLore.every((book) => book.alwaysActive);
+
+ globalLore.forEach((book) => {
+ book.alwaysActive = !allActive;
+ });
+ }
+
+ function toggleChatLoreAlwaysActive() {
+ const localLore = DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].localLore;
+
+ if (!localLore) return;
+
+ const allActive = localLore.every((book) => book.alwaysActive);
+
+ localLore.forEach((book) => {
+ book.alwaysActive = !allActive;
+ });
+ }
{#if !globalMode}
@@ -99,5 +133,25 @@
}} class="hover:text-textcolor ml-2 cursor-pointer">
+
+
{/if}
\ No newline at end of file
From 0670972016623392205024d2003b125e1f3ad2e0 Mon Sep 17 00:00:00 2001
From: Bo26fhmC5M <88071760+Bo26fhmC5M@users.noreply.github.com>
Date: Sat, 8 Feb 2025 23:04:59 +0900
Subject: [PATCH 2/2] fix: change lorebook toggle button labels to uppercase
for better readability
---
src/lib/SideBars/LoreBook/LoreBookSetting.svelte | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lib/SideBars/LoreBook/LoreBookSetting.svelte b/src/lib/SideBars/LoreBook/LoreBookSetting.svelte
index 108a03e9..2454228d 100644
--- a/src/lib/SideBars/LoreBook/LoreBookSetting.svelte
+++ b/src/lib/SideBars/LoreBook/LoreBookSetting.svelte
@@ -141,7 +141,7 @@
{:else}
{/if}
- Char
+ CHAR
{/if}
\ No newline at end of file