Extract assignCharacterAsAssistant func

This commit is contained in:
Cohee
2025-05-13 00:54:40 +03:00
parent 5434efd6c0
commit ae0aa42e7a

View File

@ -335,6 +335,37 @@ export async function openPermanentAssistantCard() {
await selectCharacterById(characterId); await selectCharacterById(characterId);
} }
/**
* Assigns a character as the assistant.
* @param {string?} characterId Character ID
*/
export function assignCharacterAsAssistant(characterId) {
if (characterId === undefined) {
return;
}
/** @type {import('./char-data.js').v1CharData} */
const character = characters[characterId];
if (!character) {
return;
}
const currentAssistantAvatar = getPermanentAssistantAvatar();
if (currentAssistantAvatar === character.avatar) {
if (character.avatar === defaultAssistantAvatar) {
toastr.info(t`${character.name} is a system assistant. Choose another character.`);
return;
}
toastr.info(t`${character.name} is no longer your assistant.`);
accountStorage.removeItem(assistantAvatarKey);
return;
}
accountStorage.setItem(assistantAvatarKey, character.avatar);
printCharactersDebounced();
toastr.success(t`Set ${character.name} as your assistant.`);
}
export function initWelcomeScreen() { export function initWelcomeScreen() {
const events = [event_types.CHAT_CHANGED, event_types.APP_READY]; const events = [event_types.CHAT_CHANGED, event_types.APP_READY];
for (const event of events) { for (const event of events) {
@ -345,30 +376,7 @@ export function initWelcomeScreen() {
if (target !== 'set_as_assistant') { if (target !== 'set_as_assistant') {
return; return;
} }
if (this_chid === undefined) { assignCharacterAsAssistant(this_chid);
return;
}
/** @type {import('./char-data.js').v1CharData} */
const character = characters[this_chid];
if (!character) {
return;
}
const currentAssistantAvatar = getPermanentAssistantAvatar();
if (currentAssistantAvatar === character.avatar) {
if (character.avatar === defaultAssistantAvatar) {
toastr.info(t`${character.name} is a system assistant. Choose another character.`);
return;
}
toastr.info(t`${character.name} is no longer your assistant.`);
accountStorage.removeItem(assistantAvatarKey);
return;
}
accountStorage.setItem(assistantAvatarKey, character.avatar);
printCharactersDebounced();
toastr.success(t`Set ${character.name} as your assistant.`);
}); });
eventSource.on(event_types.CHARACTER_RENAMED, (oldAvatar, newAvatar) => { eventSource.on(event_types.CHARACTER_RENAMED, (oldAvatar, newAvatar) => {