#How to get URL searchParams in form ServerAction?
9 messages · Page 1 of 1 (latest)
🔎 This post has been indexed in our web forum and will be seen by search engines so other users can find it outside Discord
🕵️ Your user profile is private by default and won't be visible to users outside Discord, if you want to be visible in the web forum you can add the "Public Profile" role in id:customize
✅ You can mark a message as the answer for your post with Right click -> Apps -> Mark Solution
(if you don't see the option, try refreshing Discord with Ctrl + R)
Doing it like this. Seems like a round about way of doing it, but it works.
// some ServerAction function
const _headers = headers();
const referrer = _headers.get("referer") as string;
const url = new URL(referrer);
let redirectPath = url.searchParams.get("redirect");
if (redirectPath) {
redirectPath = decodeURIComponent(redirectPath);
} else {
redirectPath = "/dashboard";
}
return redirect(redirectPath);
I think you could try to read it from the props of the page component or use useSearchParams() hook in client component then pass to the action
How to pass it? In a hidden input in the form?
yeah, or use bind
Does bind work with useFormState hook? Then my server action would have 3 arguments? someAction(initialFormState, bindValue, formData);)
yes
const [state, formAction] = useFormState(action.bind(null, searchParams), initialState)
then in your action
export async function action(searchParams, prevState, formData) {}
Thanks for your input!