63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
export const b = {
|
|
init: 'restoreCollectionDetails restoreThreadDetails restorePostDetails',
|
|
}
|
|
|
|
const COLLECTION_DETAILS_KEY = 'collectionsOpen';
|
|
const THREAD_DETAILS_KEY = 'threadsOpen';
|
|
const POST_DETAILS_KEY = 'postsOpen';
|
|
|
|
let collectionDetailsData = {};
|
|
let collectionThreadDetailsData = {};
|
|
let collectionPostDetailsData = {};
|
|
|
|
async function setDetailsData(obj, key, id, isOpen) {
|
|
obj[id] = isOpen;
|
|
await b.savePageData(obj, key);
|
|
}
|
|
|
|
export async function restoreCollectionDetails(_, __, el) {
|
|
collectionDetailsData = await b.loadPageData(COLLECTION_DETAILS_KEY, {});
|
|
el.open = collectionDetailsData[el.dataset.id] === true;
|
|
}
|
|
|
|
export async function setCollectionDetails(ev, sender, el) {
|
|
if (el !== sender) {
|
|
return;
|
|
}
|
|
if (ev.target !== el.querySelector('summary')) {
|
|
return;
|
|
}
|
|
console.log(!el.open);
|
|
await setDetailsData(collectionDetailsData, COLLECTION_DETAILS_KEY, el.dataset.id, !el.open);
|
|
}
|
|
|
|
export async function restoreThreadDetails(_, __, el) {
|
|
collectionThreadDetailsData = await b.loadPageData(THREAD_DETAILS_KEY, {});
|
|
el.open = collectionThreadDetailsData[el.dataset.id] === true;
|
|
}
|
|
|
|
export async function setThreadDetails(ev, sender, el) {
|
|
if (el !== sender) {
|
|
return;
|
|
}
|
|
if (ev.target !== el.querySelector('summary')) {
|
|
return;
|
|
}
|
|
await setDetailsData(collectionThreadDetailsData, THREAD_DETAILS_KEY, el.dataset.id, !el.open);
|
|
}
|
|
|
|
export async function restorePostDetails(_, __, el) {
|
|
collectionPostDetailsData = await b.loadPageData(POST_DETAILS_KEY, {});
|
|
el.open = collectionPostDetailsData[el.dataset.id] === true;
|
|
}
|
|
|
|
export async function setPostDetails(ev, sender, el) {
|
|
if (el !== sender) {
|
|
return;
|
|
}
|
|
if (ev.target !== el.querySelector('summary')) {
|
|
return;
|
|
}
|
|
await setDetailsData(collectionPostDetailsData, POST_DETAILS_KEY, el.dataset.id, !el.open);
|
|
}
|