Files
nms/options/options.js

45 lines
1.8 KiB
JavaScript

import "../style.scss"
import * as base64 from "../libs/base64.js"
const saveOptions = async (saveEvent) => {
saveEvent.preventDefault()
if (document.querySelector("#resume").value !== "" && (await browser.storage.local.get("resume")).resume !== base64.utf8ToBase64(document.querySelector("#resume").value)) {
const LastEdited = new Date().toLocaleString()
browser.storage.local.set({
resume: base64.utf8ToBase64(document.querySelector("#resume").value),
lastEdited: LastEdited
})
document.querySelector("#resumeLastUpdated").textContent = `Last Edited: ${LastEdited}`
}
browser.storage.local.set({
model: document.querySelector("#mlModel").value
})
}
const restoreOptions = async () => {
const defaultModel = "Llama-3.2-1B-Instruct-q4f32_1-MLC"
try {
let resume = await browser.storage.local.get("resume")
if (resume.resume) {
document.querySelector("#resume").textContent = base64.base64ToUtf8(resume.resume)
let lastEdited = await browser.storage.local.get("lastEdited")
if (lastEdited.lastEdited) {
document.querySelector("#resumeLastUpdated").textContent = `Last Edited: ${lastEdited.lastEdited}`
}
}
let model = await browser.storage.local.get("model") || defaultModel
model = model === "" ? defaultModel : model
// document.querySelector("#mlModel").value = model
document.querySelectorAll("#mlModel.option").forEach((element) => {
element.selected = (element.value === model)
})
} catch (error) {
console.error("Error restoring options:", error)
}
}
document.addEventListener("DOMContentLoaded", restoreOptions)
document.querySelector("form").addEventListener("submit", saveOptions)