Add rename personas functionality

3d817352eca4379f939cc6db5b32f286adaa8560

Wolfsblvt <wolfsblvt@gmail.com>

2 files changed, +22 -25Ignore whitespace
public/scripts/personas.js+22 -21
@@ -696,6 +696,27 @@ async function updatePersonaNameIfExists(avatarId, newName) {
696696 saveSettingsDebounced();
697697}
698698
699+async function renamePersona(avatarId) {
700+ const currentName = power_user.personas[avatarId];
701+ const newName = await Popup.show.input(t`Rename Persona`, t`Enter a new name for this persona:`, currentName);
702+ if (!newName || newName === currentName) {
703+ console.debug('User cancelled renaming persona or name is unchanged');
704+ return;
705+ }
706+
707+ power_user.personas[avatarId] = newName;
708+ console.log(`Renamed persona ${avatarId} to ${newName}`);
709+
710+ if (avatarId === user_avatar) {
711+ setUserName(newName);
712+ }
713+
714+ saveSettingsDebounced();
715+ await getUserAvatars(true, avatarId);
716+ updatePersonaUIStates();
717+ setPersonaDescription();
718+}
719+
699720async function bindUserNameToPersona() {
700721 const avatarId = user_avatar;
701722
@@ -1164,18 +1185,6 @@ function getOrCreatePersonaDescriptor() {
11641185 return object;
11651186}
11661187
1167-
1168-
1169-async function toggleDefaultPersonaClicked(e) {
1170- e?.stopPropagation();
1171- const avatarId = $(e.currentTarget).closest('.avatar-container').find('.avatar').attr('data-avatar-id');
1172- if (avatarId) {
1173- await toggleDefaultPersona(avatarId);
1174- } else {
1175- console.warn('No avatar id found');
1176- }
1177-}
1178-
11791188/**
11801189 * Sets a persona as the default one to be used for all new chats and unlocked existing chats
11811190 * @param {string} avatarId The avatar id of the persona to set as the default
@@ -1600,7 +1609,6 @@ async function duplicatePersona(avatarId) {
16001609}
16011610
16021611export function initPersonas() {
1603- $(document).on('click', '.set_default_persona', toggleDefaultPersonaClicked);
16041612 $('#persona_delete_button').on('click', deleteUserAvatar);
16051613 $('#lock_persona_default').on('click', () => togglePersonaLock('default'));
16061614 $('#lock_user_name').on('click', () => togglePersonaLock('chat'));
@@ -1647,14 +1655,7 @@ export function initPersonas() {
16471655 retriggerFirstMessageOnEmptyChat();
16481656 });
16491657
16501658 $('#persona_rename_button').on('click', (async) function=> renamePersona(user_avatar) {);
1651- const userName = String($('#your_name').val()).trim();
1652- setUserName(userName);
1653- await updatePersonaNameIfExists(user_avatar, userName);
1654- retriggerFirstMessageOnEmptyChat();
1655- // TODO: Do both binding and/or rename?
1656- //bindUserNameToPersona();
1657- });
16581659
16591660 $(document).on('click', '#user_avatar_block .avatar_upload', function () {
16601661 $('#avatar_upload_overwrite').val('');
public/style.css+0 -4
@@ -3887,10 +3887,6 @@ input[type='checkbox'].del_checkbox {
38873887 outline: var(--avatar-base-border-radius) solid var(--golden);
38883888}
38893889
3890-.avatar-container.default_persona .set_default_persona {
3891- color: var(--golden);
3892-}
3893-
38943890.avatar-container .avatar_state .fa-lock {
38953891 color: var(--active);
38963892}