Extract assignCharacterAsAssistant func

ae0aa42e7a2497be1bfb5a8ff49d025eb1678ae2

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +32 -24Ignore whitespace
public/scripts/welcome-screen.js+32 -24
@@ -335,6 +335,37 @@ export async function openPermanentAssistantCard() {
335 await selectCharacterById(characterId);335 await selectCharacterById(characterId);
336}336}
337337
338/**
339 * Assigns a character as the assistant.
340 * @param {string?} characterId Character ID
341 */
342export function assignCharacterAsAssistant(characterId) {
343 if (characterId === undefined) {
344 return;
345 }
346 /** @type {import('./char-data.js').v1CharData} */
347 const character = characters[characterId];
348 if (!character) {
349 return;
350 }
351
352 const currentAssistantAvatar = getPermanentAssistantAvatar();
353 if (currentAssistantAvatar === character.avatar) {
354 if (character.avatar === defaultAssistantAvatar) {
355 toastr.info(t`${character.name} is a system assistant. Choose another character.`);
356 return;
357 }
358
359 toastr.info(t`${character.name} is no longer your assistant.`);
360 accountStorage.removeItem(assistantAvatarKey);
361 return;
362 }
363
364 accountStorage.setItem(assistantAvatarKey, character.avatar);
365 printCharactersDebounced();
366 toastr.success(t`Set ${character.name} as your assistant.`);
367}
368
338export function initWelcomeScreen() {369export function initWelcomeScreen() {
339 const events = [event_types.CHAT_CHANGED, event_types.APP_READY];370 const events = [event_types.CHAT_CHANGED, event_types.APP_READY];
340 for (const event of events) {371 for (const event of events) {
@@ -345,30 +376,7 @@ export function initWelcomeScreen() {
345 if (target !== 'set_as_assistant') {376 if (target !== 'set_as_assistant') {
346 return;377 return;
347 }378 }
348 if (this_chid === undefined) {379 assignCharacterAsAssistant(this_chid);
349 return;
350 }
351 /** @type {import('./char-data.js').v1CharData} */
352 const character = characters[this_chid];
353 if (!character) {
354 return;
355 }
356
357 const currentAssistantAvatar = getPermanentAssistantAvatar();
358 if (currentAssistantAvatar === character.avatar) {
359 if (character.avatar === defaultAssistantAvatar) {
360 toastr.info(t`${character.name} is a system assistant. Choose another character.`);
361 return;
362 }
363
364 toastr.info(t`${character.name} is no longer your assistant.`);
365 accountStorage.removeItem(assistantAvatarKey);
366 return;
367 }
368
369 accountStorage.setItem(assistantAvatarKey, character.avatar);
370 printCharactersDebounced();
371 toastr.success(t`Set ${character.name} as your assistant.`);
372 });380 });
373381
374 eventSource.on(event_types.CHARACTER_RENAMED, (oldAvatar, newAvatar) => {382 eventSource.on(event_types.CHARACTER_RENAMED, (oldAvatar, newAvatar) => {