Current section
Files
Jump to
Current section
Files
src/off_topic/internal/commands_ffi.mjs
import { resolveElement } from "./utils_ffi.mjs";
function dispatchStorageEvent(storage, key, oldValue, newValue) {
window.dispatchEvent(new StorageEvent("storage", {
key, oldValue, newValue, storageArea: storage, url: window.location.href,
}));
}
export function set_local_storage(key, value, emit) {
const oldValue = emit ? localStorage.getItem(key) : null;
localStorage.setItem(key, value);
if (emit) dispatchStorageEvent(localStorage, key, oldValue, value);
}
export function remove_local_storage(key, emit) {
const oldValue = emit ? localStorage.getItem(key) : null;
localStorage.removeItem(key);
if (emit) dispatchStorageEvent(localStorage, key, oldValue, null);
}
export function set_session_storage(key, value, emit) {
const oldValue = emit ? sessionStorage.getItem(key) : null;
sessionStorage.setItem(key, value);
if (emit) dispatchStorageEvent(sessionStorage, key, oldValue, value);
}
export function remove_session_storage(key, emit) {
const oldValue = emit ? sessionStorage.getItem(key) : null;
sessionStorage.removeItem(key);
if (emit) dispatchStorageEvent(sessionStorage, key, oldValue, null);
}
export function scroll_to(selector, x, y, behavior, root) {
resolveElement(selector, root)?.scrollTo({ left: x, top: y, behavior });
}
export function scroll_into_view(selector, block, inline, behavior, root) {
resolveElement(selector, root)?.scrollIntoView({ block, inline, behavior });
}
export function focus(selector, root) {
resolveElement(selector, root)?.focus();
}
export function blur() {
document.activeElement?.blur();
}