mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Dynamically update group avatars
This commit is contained in:
@ -2429,11 +2429,14 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
|
|||||||
|
|
||||||
const memberIds = enabledMembers
|
const memberIds = enabledMembers
|
||||||
.map((member) => characterIndexMap.get(member))
|
.map((member) => characterIndexMap.get(member))
|
||||||
.filter((index) => index !== undefined);
|
.filter((index) => index !== undefined && index !== null);
|
||||||
|
|
||||||
if (memberIds.length > 0) {
|
if (memberIds.length > 0) {
|
||||||
setCharacterId(memberIds[0]);
|
setCharacterId(memberIds[0]);
|
||||||
setCharacterName('');
|
setCharacterName('');
|
||||||
|
} else {
|
||||||
|
console.log('No enabled members found');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ import {
|
|||||||
getCurrentChatId,
|
getCurrentChatId,
|
||||||
setScenarioOverride,
|
setScenarioOverride,
|
||||||
getCropPopup,
|
getCropPopup,
|
||||||
|
system_avatar,
|
||||||
} from "../script.js";
|
} from "../script.js";
|
||||||
import { appendTagToList, createTagMapFromList, getTagsList, applyTagsOnCharacterSelect, tag_map } from './tags.js';
|
import { appendTagToList, createTagMapFromList, getTagsList, applyTagsOnCharacterSelect, tag_map } from './tags.js';
|
||||||
import { FilterHelper } from './filters.js';
|
import { FilterHelper } from './filters.js';
|
||||||
@ -354,12 +355,11 @@ export function getGroupBlock(group) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateGroupAvatar(group) {
|
function updateGroupAvatar(group) {
|
||||||
$("#rm_print_characters_block .group_select").each(function () {
|
$("#group_avatar_preview").empty().append(getGroupAvatar(group));
|
||||||
|
|
||||||
|
$(".group_select").each(function () {
|
||||||
if ($(this).data("id") == group.id) {
|
if ($(this).data("id") == group.id) {
|
||||||
const avatar = getGroupAvatar(group);
|
$(this).find(".avatar").replaceWith(getGroupAvatar(group));
|
||||||
if (avatar) {
|
|
||||||
$(this).find(".avatar").replaceWith(avatar);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -401,7 +401,7 @@ function getGroupAvatar(group) {
|
|||||||
|
|
||||||
// default avatar
|
// default avatar
|
||||||
const groupAvatar = $("#group_avatars_template .collage_1").clone();
|
const groupAvatar = $("#group_avatars_template .collage_1").clone();
|
||||||
groupAvatar.find(".img_1").attr("src", group.avatar_url);
|
groupAvatar.find(".img_1").attr("src", group.avatar_url || system_avatar);
|
||||||
return groupAvatar;
|
return groupAvatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -877,8 +877,8 @@ async function modifyGroupMember(chat_id, groupMember, isDelete) {
|
|||||||
|
|
||||||
async function reorderGroupMember(chat_id, groupMember, direction) {
|
async function reorderGroupMember(chat_id, groupMember, direction) {
|
||||||
const id = groupMember.data("id");
|
const id = groupMember.data("id");
|
||||||
const group = groups.find((x) => x.id == chat_id);
|
const thisGroup = groups.find((x) => x.id == chat_id);
|
||||||
const memberArray = group?.members ?? newGroupMembers;
|
const memberArray = thisGroup?.members ?? newGroupMembers;
|
||||||
|
|
||||||
const indexOf = memberArray.indexOf(id);
|
const indexOf = memberArray.indexOf(id);
|
||||||
if (direction == 'down') {
|
if (direction == 'down') {
|
||||||
@ -901,7 +901,7 @@ async function reorderGroupMember(chat_id, groupMember, direction) {
|
|||||||
// Existing groups need to modify members list
|
// Existing groups need to modify members list
|
||||||
if (openGroupId) {
|
if (openGroupId) {
|
||||||
await editGroup(chat_id, false, false);
|
await editGroup(chat_id, false, false);
|
||||||
updateGroupAvatar(group);
|
updateGroupAvatar(thisGroup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user