add saving draft to localStorage

This commit is contained in:
2026-05-29 01:59:46 +03:00
parent 2f78c7459c
commit 3d633bd529
2 changed files with 27 additions and 1 deletions

View File

@@ -3,6 +3,10 @@ export const b = {
} }
export function enhance(_, __, el) { export function enhance(_, __, el) {
if (el === undefined) { // nothing to enhance but init still runs
return;
}
if (el.classList.contains('js-only')) { if (el.classList.contains('js-only')) {
el.classList.remove('js-only'); el.classList.remove('js-only');
} }

View File

@@ -3,6 +3,14 @@ export const b = {
init: 'babycodeEditorCharCountInit', init: 'babycodeEditorCharCountInit',
} }
const getThreadId = () => {
const scheme = window.location.pathname.split("/");
if (scheme[1] !== 'threads' || scheme[2] === 'new') {
return -1;
}
return parseInt(scheme[2]);
}
export function setTab(_, sender, el) { export function setTab(_, sender, el) {
if (sender.ariaSelected === 'true') { if (sender.ariaSelected === 'true') {
return; return;
@@ -95,10 +103,24 @@ export function babycodeEditorCharCount(evOrPayload, sender, el) {
const maxLength = sender.maxLength; const maxLength = sender.maxLength;
const currentLength = sender.value.length; const currentLength = sender.value.length;
el.innerText = `${currentLength}/${maxLength}` el.innerText = `${currentLength}/${maxLength}`;
const threadId = getThreadId();
if (threadId !== -1) {
localStorage.setItem(`thread-${threadId}`, sender.value);
}
} }
export function babycodeEditorCharCountInit(_, __, el) { export function babycodeEditorCharCountInit(_, __, el) {
if (el === undefined) { // no editors on page
return;
}
const threadId = getThreadId();
if (threadId !== -1) {
el.value = localStorage.getItem(`thread-${threadId}`);
}
b.send({ sender: el }, 'babycodeEditorCharCount'); b.send({ sender: el }, 'babycodeEditorCharCount');
} }