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
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;
|
|
};
|