useScopedParams hook reads and updates URL search parameters with optional key scoping.ts
import { useScopedParams } from "@arkyn/components";
searchString (required)URLSearchParams.stringscope (optional)scope:key.string
Default: ""{ getParam: (key: string) => string | null; getScopedSearch: (params: Record<string, string | number | boolean | undefined>) => string }getParam(key: string): string | null
Reads a parameter by key, applying scope prefix when configured.getScopedSearch(params: Record<string, string | number | boolean | undefined>): string
Merges updates, removes keys with undefined, and returns a query string with optional ? prefix.tsx
import { useScopedParams } from "@arkyn/components";function ProductFilters({ search }: { search: string }) {const { getParam, getScopedSearch } = useScopedParams(search, "filters");const category = getParam("category");function applyElectronics() {const nextSearch = getScopedSearch({ category: "electronics", page: 1 });// navigate({ search: nextSearch })console.log(nextSearch);}return (<div><p>Category: {category || "all"}</p><button onClick={applyElectronics}>Electronics</button></div>);}
undefined deletes the target key from query parameters.