refactor: get magic_token with useOutletContext in reg

This commit is contained in:
Tristan Yang
2023-03-22 11:35:58 +08:00
parent 5f08b79a60
commit 5bfcc0d3bf
3 changed files with 22 additions and 11 deletions
+14 -3
View File
@@ -1,12 +1,23 @@
import { Outlet } from "react-router-dom";
import { useEffect, useState } from "react";
import { Outlet, useOutletContext, useSearchParams } from "react-router-dom";
type ContextType = { token: string };
export default function RegContainer() {
const [token, setToken] = useState("");
let [searchParams] = useSearchParams(new URLSearchParams(location.search));
const magic_token = searchParams.get("magic_token") ?? "";
useEffect(() => {
setToken(magic_token);
}, [magic_token]);
return (
<div className="flex-center h-screen overflow-x-hidden overflow-y-auto dark:bg-gray-700">
<div className="py-8 px-10 shadow-md rounded-xl">
<Outlet />
<Outlet context={{ token }} />
</div>
</div>
);
}
export function useMagicToken() {
return useOutletContext<ContextType>();
}