1
0
Fork 0
esix-client/src/routes/+page.svelte
2024-10-23 23:21:27 +02:00

41 lines
No EOL
1.3 KiB
Svelte

<script>
import { Header, ImageGrid } from '$lib/components';
import { invoke } from '@tauri-apps/api/core'
import PostList from '$lib/PostList';
import useSettings from "$lib/useSettings.svelte.js";
import {onMount} from "svelte";
import {loading, postSearchResults} from "$lib/stores.js";
const settings = useSettings();
function onSearch(val = '', explicitRefresh = false) {
loading.set(true);
invoke('get_posts', { query: val }).then((resPosts) => {
postSearchResults.set(new PostList(resPosts).filterPosts(settings.blacklist).getPosts())
loading.set(false)
});
}
onMount(() => {
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('search')) {
onSearch(urlParams.get('search'), false);
return;
}
if ($postSearchResults === null) {
onSearch(settings.lastSearch, true);
}
})
</script>
<div>
<Header onsubmit={(val = '', explicitRefresh = false) => {onSearch(val, explicitRefresh);}}></Header>
<main>
<div class="overflow-scroll p-2">
{#if $postSearchResults}
<ImageGrid posts={$postSearchResults} />
{/if}
</div>
</main>
</div>