Fixed SD RPG
This commit is contained in:
+18
-14
@@ -1,5 +1,9 @@
|
||||
import { currentPersona, setCurrentPersona, sessionId } from './state.js';
|
||||
import { initChat } from './chat.js';
|
||||
import {
|
||||
currentPersona,
|
||||
sessionId,
|
||||
getNewChatDefaultPersona,
|
||||
setNewChatDefaultPersona,
|
||||
} from './state.js';
|
||||
import { initWizard, fillGreetingSelect, getSelectedGreeting } from './utils.js';
|
||||
|
||||
export let personaIndex = new Map();
|
||||
@@ -21,12 +25,18 @@ let cardImportWizard;
|
||||
let cardPreview = null;
|
||||
let cardImportFile = null;
|
||||
|
||||
export function highlightPersona(personaId) {
|
||||
export function highlightPersonaBar(personaId) {
|
||||
document.querySelectorAll('.persona-card').forEach(c => {
|
||||
c.classList.toggle('active', c.dataset.id === personaId);
|
||||
});
|
||||
}
|
||||
|
||||
/** Active session → session persona; otherwise new-chat preset. */
|
||||
export function refreshPersonaBarHighlight() {
|
||||
const id = sessionId ? currentPersona : getNewChatDefaultPersona();
|
||||
highlightPersonaBar(id);
|
||||
}
|
||||
|
||||
export async function loadPersonas() {
|
||||
const res = await fetch('/personas/');
|
||||
const personas = await res.json();
|
||||
@@ -37,9 +47,11 @@ export async function loadPersonas() {
|
||||
const bar = document.getElementById('personaBar');
|
||||
bar.innerHTML = '';
|
||||
|
||||
const barActiveId = sessionId ? currentPersona : getNewChatDefaultPersona();
|
||||
|
||||
personas.forEach(p => {
|
||||
const card = document.createElement('div');
|
||||
card.className = 'persona-card' + (p.persona_id === currentPersona ? ' active' : '');
|
||||
card.className = 'persona-card' + (p.persona_id === barActiveId ? ' active' : '');
|
||||
card.dataset.id = p.persona_id;
|
||||
const isCard = p.persona_id.startsWith('card_');
|
||||
const isCustomPersona = p.custom && !isCard;
|
||||
@@ -131,16 +143,8 @@ export async function loadPersonas() {
|
||||
}
|
||||
|
||||
export async function selectPersona(personaId) {
|
||||
setCurrentPersona(personaId);
|
||||
highlightPersona(personaId);
|
||||
if (sessionId) {
|
||||
await fetch(`/sessions/${sessionId}`, {
|
||||
method: 'PATCH',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ persona_id: personaId }),
|
||||
});
|
||||
await initChat();
|
||||
}
|
||||
setNewChatDefaultPersona(personaId);
|
||||
highlightPersonaBar(personaId);
|
||||
}
|
||||
|
||||
function fillImpCardForm(preview) {
|
||||
|
||||
Reference in New Issue
Block a user