mirror of
https://github.com/revanced/revanced-website.git
synced 2025-04-30 06:34:35 +02:00
feat: patches search url params
This commit is contained in:
parent
336f949dcc
commit
80ae15bb18
@ -1,13 +1,14 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let title: string;
|
export let title: string;
|
||||||
export let searchTerm: string | null;
|
export let searchTerm: string | null;
|
||||||
export let searchTermFiltered: string | null;
|
export let searchTermFiltered: string | undefined;
|
||||||
import { fade } from 'svelte/transition';
|
import { fade } from 'svelte/transition';
|
||||||
import { quintOut } from 'svelte/easing';
|
import { quintOut } from 'svelte/easing';
|
||||||
|
|
||||||
function clear() {
|
function clear() {
|
||||||
searchTerm = null;
|
searchTerm = '';
|
||||||
searchTermFiltered = null;
|
searchTermFiltered = '';
|
||||||
|
window.history.pushState(null, '', window.location.href.split('?')[0])
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -68,10 +69,9 @@
|
|||||||
background-color: var(--grey-ten);
|
background-color: var(--grey-ten);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
input::placeholder {
|
input::placeholder {
|
||||||
color: var(--grey-five);
|
color: var(--grey-five);
|
||||||
font-size: 0.92rem;
|
font-size: 0.9rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
transition: all 0.2s var(--bezier-one);
|
transition: all 0.2s var(--bezier-one);
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
export let selectedPkg: string | undefined;
|
export let selectedPkg: string | undefined;
|
||||||
export let name: string;
|
export let name: string;
|
||||||
|
export let searchTerm: string | null;
|
||||||
|
|
||||||
function handleClick() {
|
function handleClick() {
|
||||||
// Assign the selected package. If it's already selected, deselect it.
|
// Assign the selected package. If it's already selected, deselect it.
|
||||||
@ -10,6 +11,9 @@
|
|||||||
if (selectedPkg !== name && name !== 'All packages') {
|
if (selectedPkg !== name && name !== 'All packages') {
|
||||||
path += `/${name}`;
|
path += `/${name}`;
|
||||||
}
|
}
|
||||||
|
if (searchTerm) {
|
||||||
|
path += `?s=${searchTerm}`
|
||||||
|
};
|
||||||
goto(path);
|
goto(path);
|
||||||
window.scrollTo({ top: 0, behavior: 'smooth' });
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { fly } from 'svelte/transition';
|
import { fly } from 'svelte/transition';
|
||||||
import { quintOut } from 'svelte/easing';
|
import { quintOut } from 'svelte/easing';
|
||||||
|
import { page } from '$app/stores';
|
||||||
|
|
||||||
import type { PageData } from './$types';
|
import type { PageData } from './$types';
|
||||||
import type { Patch } from '$lib/types';
|
import type { Patch } from '$lib/types';
|
||||||
@ -23,8 +24,12 @@
|
|||||||
export let data: PageData;
|
export let data: PageData;
|
||||||
$: ({ selectedPkg } = data);
|
$: ({ selectedPkg } = data);
|
||||||
|
|
||||||
let searchTerm: string;
|
let searchTerm = $page.url.searchParams.get('s');
|
||||||
let searchTermFiltered: string;
|
let searchTermFiltered = searchTerm
|
||||||
|
?.replace(/\./g, '')
|
||||||
|
.replace(/\s/g, '')
|
||||||
|
.replace(/-/g, '')
|
||||||
|
.toLowerCase();
|
||||||
let timeout: ReturnType<typeof setTimeout>;
|
let timeout: ReturnType<typeof setTimeout>;
|
||||||
let mobilePackages = false;
|
let mobilePackages = false;
|
||||||
|
|
||||||
@ -72,6 +77,8 @@
|
|||||||
.replace(/\s/g, '')
|
.replace(/\s/g, '')
|
||||||
.replace(/-/g, '')
|
.replace(/-/g, '')
|
||||||
.toLowerCase();
|
.toLowerCase();
|
||||||
|
// Update search URL params
|
||||||
|
window.history.pushState(null, '', `${window.location.href.split('?')[0]}${searchTerm ? '?s=' + searchTerm : ''}`)
|
||||||
}, 500);
|
}, 500);
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@ -112,14 +119,14 @@
|
|||||||
on:click={() => (mobilePackages = !mobilePackages)}
|
on:click={() => (mobilePackages = !mobilePackages)}
|
||||||
on:keypress={() => (mobilePackages = !mobilePackages)}
|
on:keypress={() => (mobilePackages = !mobilePackages)}
|
||||||
>
|
>
|
||||||
<Package {selectedPkg} name="All packages" />
|
<Package {selectedPkg} name="All packages" bind:searchTerm/>
|
||||||
</span>
|
</span>
|
||||||
{#each data.packages as pkg}
|
{#each data.packages as pkg}
|
||||||
<span
|
<span
|
||||||
on:click={() => (mobilePackages = !mobilePackages)}
|
on:click={() => (mobilePackages = !mobilePackages)}
|
||||||
on:keypress={() => (mobilePackages = !mobilePackages)}
|
on:keypress={() => (mobilePackages = !mobilePackages)}
|
||||||
>
|
>
|
||||||
<Package {selectedPkg} name={pkg} />
|
<Package {selectedPkg} name={pkg} bind:searchTerm/>
|
||||||
</span>
|
</span>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
@ -129,9 +136,9 @@
|
|||||||
<aside in:fly={{ y: 10, easing: quintOut, duration: 750 }}>
|
<aside in:fly={{ y: 10, easing: quintOut, duration: 750 }}>
|
||||||
<PackageMenu>
|
<PackageMenu>
|
||||||
<span class="packages">
|
<span class="packages">
|
||||||
<Package {selectedPkg} name="All packages" />
|
<Package {selectedPkg} name="All packages" bind:searchTerm/>
|
||||||
{#each data.packages as pkg}
|
{#each data.packages as pkg}
|
||||||
<Package {selectedPkg} name={pkg} />
|
<Package {selectedPkg} name={pkg} bind:searchTerm />
|
||||||
{/each}
|
{/each}
|
||||||
</span>
|
</span>
|
||||||
</PackageMenu>
|
</PackageMenu>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user