Skip to content

Commit 9c62248

Browse files
authored
Merge pull request ricklamers#13 from DracoYus/main
Remember user preferences
2 parents 63f0360 + eb4610c commit 9c62248

File tree

1 file changed

+41
-1
lines changed

1 file changed

+41
-1
lines changed

client/js/chat.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,8 @@ const message_id = () => {
371371
}
372372

373373
window.onload = async () => {
374+
load_settings_localstorage();
375+
374376
conversations = 0
375377
for (let i = 0; i < localStorage.length; i++) {
376378
if (localStorage.key(i).startsWith('conversation:')) {
@@ -406,6 +408,8 @@ window.onload = async () => {
406408
if (prompt_lock) return;
407409
await handle_ask();
408410
});
411+
412+
register_settings_localstorage();
409413
}
410414

411415
document.querySelector('.mobile-sidebar').addEventListener('click', (event) => {
@@ -420,4 +424,40 @@ document.querySelector('.mobile-sidebar').addEventListener('click', (event) => {
420424
}
421425

422426
window.scrollTo(0, 0);
423-
})
427+
})
428+
429+
const register_settings_localstorage = async () => {
430+
settings_ids = ['switch', 'model','jailbreak']
431+
settings_elements = settings_ids.map(id => document.getElementById(id))
432+
settings_elements.map(element => element.addEventListener(`change`, async (event) => {
433+
switch(event.target.type) {
434+
case 'checkbox':
435+
localStorage.setItem(event.target.id, event.target.checked)
436+
break
437+
case 'select-one':
438+
localStorage.setItem(event.target.id, event.target.selectedIndex)
439+
break
440+
default:
441+
console.warn('Unresolved element type')
442+
}
443+
}))
444+
}
445+
446+
const load_settings_localstorage = async () => {
447+
settings_ids = ['switch', 'model','jailbreak']
448+
settings_elements = settings_ids.map(id => document.getElementById(id))
449+
settings_elements.map(element => {
450+
if(localStorage.getItem(element.id)) {
451+
switch(element.type) {
452+
case 'checkbox':
453+
element.checked = localStorage.getItem(element.id) === 'true'
454+
break
455+
case 'select-one':
456+
element.selectedIndex = parseInt(localStorage.getItem(element.id))
457+
break
458+
default:
459+
console.warn('Unresolved element type')
460+
}
461+
}
462+
})
463+
}

0 commit comments

Comments
 (0)