Skip to content

Commit

Permalink
improve search type (topic/title/transcript/mm) selection reactivity
Browse files Browse the repository at this point in the history
defaults actually work again, and make sure checkboxes change if url changes
  • Loading branch information
ajgeiss0702 committed Jan 22, 2025
1 parent 4bc66cc commit 93e3026
Showing 1 changed file with 62 additions and 28 deletions.
90 changes: 62 additions & 28 deletions src/routes/search/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,49 +9,83 @@
import ToolTip from "$lib/ToolTip.svelte";
import { setCookie, strip } from "$lib/cookieUtils.ts";
let q = $page.url.searchParams.get("q");
$: q = $page.url.searchParams.get("q")
let sp = $page.url.searchParams;
$: sp = $page.url.searchParams
let q = sp.get("q");
$: q = sp.get("q")
export let data;
let searchForm: HTMLFormElement;
$: searchTitle = ($page.url.searchParams.get("title")) === "on";
$: searchTopics = ($page.url.searchParams.get("topics")) === "on";
$: searchTranscripts = ($page.url.searchParams.get("transcripts")) === "on";
$: searchMerchMessages = ($page.url.searchParams.get("merch-messages")) === "on";
let defaultTitle = true;
let defaultTopics = true;
let defaultTranscripts = true;
let defaultMerchMessages = false;
$: searchSort = $page.url.searchParams.get("sort") ?? "default";
$: before = $page.url.searchParams.get("before");
$: after = $page.url.searchParams.get("after");
console.debug({before, after})
let searchTitle = defaultTitle;
let searchTopics = defaultTopics;
let searchTranscripts = defaultTranscripts;
let searchMerchMessages = defaultMerchMessages;
$: moreOptionsUsed = (!before ? 0 : 1) + (!after ? 0 : 1);
$: updateDefaults(q);
updateDefaults(q);
function updateDefaults(q: string | null) {
if(browser && !q) {
const localTitle = localStorage.getItem("searchTitle");
if(localTitle != null) {
defaultTitle = localTitle === "true";
} else {
defaultTitle = true;
}
$: highlightVisibility = data.settings?.highlightVisibility === "true";
const localTopics = localStorage.getItem("searchTopics");
if(localTopics != null) {
defaultTopics = localTopics === "true";
} else {
defaultTopics = true;
}
if(browser && !q) {
const localTitle = localStorage.getItem("searchTitle");
if(localTitle != null) {
searchTitle = localTitle === "true";
}
const localTranscripts = localStorage.getItem("searchTranscripts");
if(localTranscripts != null) {
defaultTranscripts = localTranscripts === "true";
} else {
defaultTranscripts = true;
}
const localTopics = localStorage.getItem("searchTopics");
if(localTopics != null) {
searchTopics = localTopics === "true";
}
const localMerchMessages = localStorage.getItem("searchMerchMessages");
if(localMerchMessages != null) {
defaultMerchMessages = localMerchMessages === "true";
}
const localTranscripts = localStorage.getItem("searchTranscripts");
if(localTranscripts != null) {
searchTranscripts = localTranscripts === "true";
console.log({localTitle, localTopics, localTranscripts, localMerchMessages})
searchTitle = defaultTitle;
searchTopics = defaultTopics;
searchTranscripts = defaultTranscripts;
searchMerchMessages = defaultMerchMessages;
}
}
const localMerchMessages = localStorage.getItem("searchMerchMessages");
if(localMerchMessages != null) {
searchMerchMessages = localMerchMessages === "true";
}
$: if(q) update(sp);
function update(sp: URLSearchParams) {
searchTitle = (sp.get("title")) === "on";
searchTopics = (sp.get("topics")) === "on";
searchTranscripts = (sp.get("transcripts")) === "on";
searchMerchMessages = (sp.get("merch-messages")) === "on";
}
$: searchSort = sp.get("sort") ?? "default";
$: before = sp.get("before");
$: after = sp.get("after");
$: console.debug({searchTitle, searchTopics, searchTranscripts, searchMerchMessages})
$: moreOptionsUsed = (!before ? 0 : 1) + (!after ? 0 : 1);
$: highlightVisibility = data.settings?.highlightVisibility === "true";
let first = true;
$: if(!q && browser && !first) {
localStorage.setItem("searchTitle", searchTitle+"");
Expand Down

0 comments on commit 93e3026

Please sign in to comment.