48 lines
1.7 KiB
JavaScript
48 lines
1.7 KiB
JavaScript
export let sessionId = localStorage.getItem('chat_session_id') || null;
|
|
/** Persona bound to the active session (from server, not global preset). */
|
|
export let currentPersona = 'default';
|
|
export let sidebarOpen = true;
|
|
export let rpgEnabled = false;
|
|
|
|
const NEW_CHAT_PERSONA_KEY = 'new_chat_persona_id';
|
|
|
|
export function toggleSidebar() { sidebarOpen = !sidebarOpen; return sidebarOpen; }
|
|
|
|
export function getNewChatDefaultPersona() {
|
|
return localStorage.getItem(NEW_CHAT_PERSONA_KEY)
|
|
|| localStorage.getItem('persona_id')
|
|
|| 'default';
|
|
}
|
|
|
|
export function setNewChatDefaultPersona(id) {
|
|
const pid = id || 'default';
|
|
localStorage.setItem(NEW_CHAT_PERSONA_KEY, pid);
|
|
}
|
|
|
|
export function setSessionId(id) {
|
|
sessionId = id;
|
|
if (id) localStorage.setItem('chat_session_id', id);
|
|
}
|
|
|
|
export function setCurrentPersona(id) {
|
|
currentPersona = id || 'default';
|
|
}
|
|
|
|
export function setRpgEnabled(v) { rpgEnabled = !!v; }
|
|
|
|
export const dom = {
|
|
messagesEl: document.getElementById('messages'),
|
|
inputEl: document.getElementById('input'),
|
|
sendBtn: document.getElementById('sendBtn'),
|
|
clearBtn: document.getElementById('clearBtn'),
|
|
sessionList: document.getElementById('sessionList'),
|
|
headerTitle: document.getElementById('headerTitle'),
|
|
emptyState: document.getElementById('emptyState'),
|
|
affinityDisplay: document.getElementById('affinityDisplay'),
|
|
rpgBadge: document.getElementById('rpgBadge'),
|
|
systemBlob: document.getElementById('systemBlob'),
|
|
systemBlobContent: document.getElementById('systemBlobContent'),
|
|
systemBlobToggle: document.getElementById('systemBlobToggle'),
|
|
systemBlobRefresh: document.getElementById('systemBlobRefresh'),
|
|
};
|