basics of new popup are good to go

This commit is contained in:
Jack Case
2025-11-16 23:25:27 +00:00
parent 32b0994076
commit b55c47d5f1
3 changed files with 21 additions and 13 deletions

View File

@@ -14,11 +14,11 @@ class PopupState {
this.logged_in = logged_in this.logged_in = logged_in
this.page_sections = page_sections this.page_sections = page_sections
this.visible_section = visible_section this.visible_section = visible_section
this.setVisibleSection(logged_in ? "report" : "signup") this.set_visible_section(logged_in ? "report" : "signup")
this.page_elements = page_elements this.page_elements = page_elements
} }
setVisibleSection(section_id: string) { set_visible_section(section_id: string) {
this.visible_section = section_id this.visible_section = section_id
this.page_sections.forEach((element, id) => { this.page_sections.forEach((element, id) => {
element.style.visibility = id === section_id ? "visible" : "collapse" element.style.visibility = id === section_id ? "visible" : "collapse"
@@ -46,6 +46,8 @@ async function submit_login_form() {
const status_el = document.getElementById("login-status") const status_el = document.getElementById("login-status")
status_el.setAttribute("style", "visibility: visible;") status_el.setAttribute("style", "visibility: visible;")
popup_state.set_visible_section("report")
} }
else { else {
//bad login, update the form //bad login, update the form
@@ -70,7 +72,7 @@ async function submit_signup_form() {
async function check_login(): Promise<boolean> { async function check_login(): Promise<boolean> {
const response = await send_message_to_background({type: "islogged"}) const response = await send_message_to_background({type: "islogged"})
response.json return response.logged_in
} }
@@ -103,8 +105,8 @@ async function initialize_popup() {
login_form.addEventListener("submit", (event) => { event.preventDefault(); submit_login_form() }) login_form.addEventListener("submit", (event) => { event.preventDefault(); submit_login_form() })
signup_form.addEventListener("submit", (event) => { event.preventDefault(); submit_signup_form() }) signup_form.addEventListener("submit", (event) => { event.preventDefault(); submit_signup_form() })
signup_button.addEventListener("click", (event) => {popup_state.setVisibleSection("signup")}) signup_button.addEventListener("click", (event) => {popup_state.set_visible_section("signup")})
login_button.addEventListener("click", (event) => {popup_state.setVisibleSection("login")}) login_button.addEventListener("click", (event) => {popup_state.set_visible_section("login")})
} }
addEventListener("DOMContentLoaded", (event) => { addEventListener("DOMContentLoaded", (event) => {

View File

@@ -1,6 +1,6 @@
export const API_URL: string = "https://api.slopfarmer.jack-case.pro" export const API_URL: string = "https://api.slopfarmer.jack-case.pro"
export async function send_message_to_background(message: any): Promise<any> { export async function send_message_to_background(message: any): Promise<any> {
const response = await browser.runtime.sendMessage(message) const response = browser.runtime.sendMessage(message)
return response return response
} }

View File

@@ -181,7 +181,7 @@ async function update_page_action_icon(details: browser.webNavigation._OnCommitt
console.log(is_slop) console.log(is_slop)
} }
async function message_listener(message: any, sender: any, send_response: Function) { function message_listener(message: any, sender: any, send_response: Function): Promise<any> {
switch (message.type) { switch (message.type) {
case "check": case "check":
@@ -200,22 +200,28 @@ async function message_listener(message: any, sender: any, send_response: Functi
})) }))
}) })
await Promise.all(check_promises) const result = Promise.all(check_promises).then(() => {
let remote_slop = check_remote_slop(not_found_local)
let remote_slop = await check_remote_slop(not_found_local) remote_slop.then((remote_results) => {
remote_slop.forEach((result: any) => { remote_results.forEach((result: any) => {
browser.tabs.sendMessage(tabid, { type: "check_result", domain: result.domain_name, result: result }) browser.tabs.sendMessage(tabid, { type: "check_result", domain: result.domain_name, result: result })
}) })
})
})
return result
break break
case "login": case "login":
localStorage.setItem("accessToken", message.token) localStorage.setItem("accessToken", message.token)
send_response(true) return new Promise((resolve, reject) => { resolve(true) })
break break
case "islogged": case "islogged":
const token = get_access_token() const token = get_access_token()
send_response(token ? true : false) const response = { logged_in: token != null ? true : false }
return new Promise((resolve, reject) => { resolve(response) })
break break
} }
} }