You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.8 KiB

window.onload = () => {
console.log("haiiiiiiiii :3");
const button = document.getElementById("favorite");
if (!button) throw "how did your button not init what";
let savedSearches = JSON.parse(
localStorage.getItem("savedSearches") ?? "[]"
);
if (
savedSearches.filter(
(search) =>
search.query ===
new URL(document.URL).searchParams.get("query") &&
search.type ===
new URL(document.URL).searchParams.get("type") &&
search.sort === new URL(document.URL).searchParams.get("sort")
).length > 0
) {
button.value = "Unfavorite";
}
function handler() {
console.log("haiiiiiiiii :3");
console.log(button);
if (button?.value === "Favorite") {
savedSearches.push({
query: new URL(document.URL).searchParams.get("query"),
type: new URL(document.URL).searchParams.get("type") ?? "text",
sort: new URL(document.URL).searchParams.get("sort") ?? "hot"
});
button.value = "Unfavorite";
} else if (button?.value === "Unfavorite") {
savedSearches = savedSearches.filter(
(search) =>
search.query !==
new URL(document.URL).searchParams.get("query") &&
search.type !==
new URL(document.URL).searchParams.get("type") &&
search.type !==
new URL(document.URL).searchParams.get("sort")
);
button.value = "Favorite";
}
localStorage.setItem("savedSearches", JSON.stringify(savedSearches));
}
button.onclick = handler;
};