export function createSearchParameter(param: string): Signal<ParamsValue> {
const [searchParams, setSearchParams] = useSearchParams();
const [value, setValue] = createSignal<ParamsValue>(searchParams[param]);
createEffect(
on(value, (v) => {
console.log("create effect on");
setSearchParams({
...searchParams,
[param]: v,
});
}),
);
createEffect(() => {
console.log("create effect");
setSearchParams({
...searchParams,
[param]: value(),
});
});
createComputed<Accessor<ParamsValue>>((v) => {
console.log("createComputed");
setSearchParams({
...searchParams,
[param]: v(),
});
return v;
}, value);
return [value, setValue];
}
export function createSearchParameter(param: string): Signal<ParamsValue> {
const [searchParams, setSearchParams] = useSearchParams();
const [value, setValue] = createSignal<ParamsValue>(searchParams[param]);
createEffect(
on(value, (v) => {
console.log("create effect on");
setSearchParams({
...searchParams,
[param]: v,
});
}),
);
createEffect(() => {
console.log("create effect");
setSearchParams({
...searchParams,
[param]: value(),
});
});
createComputed<Accessor<ParamsValue>>((v) => {
console.log("createComputed");
setSearchParams({
...searchParams,
[param]: v(),
});
return v;
}, value);
return [value, setValue];
}