44 lines
983 B
JavaScript
44 lines
983 B
JavaScript
export function encodeName(name) {
|
|
return btoa(unescape(encodeURIComponent(name)));
|
|
}
|
|
|
|
export function decodeName(b64) {
|
|
return decodeURIComponent(escape(atob(b64)));
|
|
}
|
|
|
|
export function getSortedNames(obj) {
|
|
return Object.keys(obj).sort((a, b) =>
|
|
a.toLowerCase().localeCompare(b.toLowerCase())
|
|
);
|
|
}
|
|
|
|
export function showStatus(message, type) {
|
|
const status = document.getElementById('status');
|
|
status.textContent = message;
|
|
status.className = `status ${type} show`;
|
|
|
|
if (status.hideTimeout) {
|
|
clearTimeout(status.hideTimeout);
|
|
}
|
|
|
|
status.hideTimeout = setTimeout(() => {
|
|
status.classList.add('hiding');
|
|
|
|
setTimeout(() => {
|
|
status.classList.remove('show', 'hiding');
|
|
}, 300);
|
|
}, 3000);
|
|
}
|
|
|
|
export function loadSidebarState() {
|
|
const saved = localStorage.getItem('sidebarCollapsed');
|
|
if (saved !== null) {
|
|
return saved === 'true';
|
|
}
|
|
return false;
|
|
}
|
|
|
|
export function saveSidebarState(collapsed) {
|
|
localStorage.setItem('sidebarCollapsed', collapsed);
|
|
}
|