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() {
335335 await selectCharacterById(characterId);
336336}
337337
338+/**
339+ * Assigns a character as the assistant.
340+ * @param {string?} characterId Character ID
341+ */
342+export 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+
338369export function initWelcomeScreen() {
339370 const events = [event_types.CHAT_CHANGED, event_types.APP_READY];
340371 for (const event of events) {
@@ -345,30 +376,7 @@ export function initWelcomeScreen() {
345376 if (target !== 'set_as_assistant') {
346377 return;
347378 }
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.`);
372380 });
373381
374382 eventSource.on(event_types.CHARACTER_RENAMED, (oldAvatar, newAvatar) => {