From 28f41b499df17fbb93f3d9d9f550f3a970593f90 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sat, 2 Nov 2024 17:12:48 +0900 Subject: [PATCH] Fix binded persona --- src/lib/ChatScreens/DefaultChatScreen.svelte | 33 +++++++++++++++++--- src/ts/stores.svelte.ts | 1 - 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/lib/ChatScreens/DefaultChatScreen.svelte b/src/lib/ChatScreens/DefaultChatScreen.svelte index d7f8aac8..036bd8af 100644 --- a/src/lib/ChatScreens/DefaultChatScreen.svelte +++ b/src/lib/ChatScreens/DefaultChatScreen.svelte @@ -3,13 +3,13 @@ import Suggestion from './Suggestion.svelte'; import AdvancedChatEditor from './AdvancedChatEditor.svelte'; import { CameraIcon, DatabaseIcon, DicesIcon, GlobeIcon, ImagePlusIcon, LanguagesIcon, Laugh, MenuIcon, MicOffIcon, PackageIcon, Plus, RefreshCcwIcon, ReplyIcon, Send, StepForwardIcon } from "lucide-svelte"; - import { selectedCharID, PlaygroundStore, UserIconProtrait, createSimpleCharacter } from "../../ts/stores.svelte"; + import { selectedCharID, PlaygroundStore, createSimpleCharacter } from "../../ts/stores.svelte"; import Chat from "./Chat.svelte"; import { type Message, type character, type groupChat } from "../../ts/storage/database.svelte"; import { DBState } from 'src/ts/stores.svelte'; import { getCharImage } from "../../ts/characters"; import { chatProcessStage, doingChat, sendChat } from "../../ts/process/index.svelte"; - import { findCharacterbyId, messageForm, sleep } from "../../ts/util"; + import { findCharacterbyId, getUserIconProtrait, messageForm, sleep } from "../../ts/util"; import { language } from "../../lang"; import { isExpTranslator, translate } from "../../ts/translator/translator"; import { alertError, alertNormal, alertWait } from "../../ts/alert"; @@ -262,6 +262,29 @@ openChatList?: boolean; customStyle?: string; } + + let userIconProtrait = $state(false) + let currentUsername = $state(DBState.db.username) + let userIcon = $state(DBState.db.userIcon) + + + $effect.pre(() =>{ + const bindedPersona = DBState?.db?.characters?.[$selectedCharID]?.chats?.[DBState?.db?.characters?.[$selectedCharID]?.chatPage]?.bindedPersona + + if(bindedPersona){ + const persona = DBState.db.personas.find((p) => p.id === bindedPersona) + if(persona){ + currentUsername = persona.name + userIconProtrait = persona.largePortrait + userIcon = persona.icon + return + } + } + + currentUsername = DBState.db.username + userIconProtrait = DBState.db.personas[DBState.db.selectedPersona].largePortrait + userIcon = DBState.db.personas[DBState.db.selectedPersona].icon + }) let { openModuleList = $bindable(false), openChatList = $bindable(false), customStyle = '' }: Props = $props(); let inputHeight = $state("44px") @@ -590,11 +613,11 @@ {/if} diff --git a/src/ts/stores.svelte.ts b/src/ts/stores.svelte.ts index 9ca59842..746e74da 100644 --- a/src/ts/stores.svelte.ts +++ b/src/ts/stores.svelte.ts @@ -39,7 +39,6 @@ export const OpenRealmStore = writable(false) export const ShowRealmFrameStore = writable('') export const PlaygroundStore = writable(0) export const HideIconStore = writable(false) -export const UserIconProtrait = writable(false) export const CustomCSSStore = writable('') export const SafeModeStore = writable(false) export const MobileSearch = writable('')