export const Route = createFileRoute("/login/")({
component: LoginComponent,
beforeLoad: async ({ context }) => {
try {
const data = await context.queryClient.ensureQueryData({
queryKey: ["user"],
queryFn: getUser,
staleTime: Infinity,
});
console.log("data:", data);
if (data) {
throw redirect({
to: "/dashboard",
});
}
} catch (e) {
if (e?.isRedirect) {
throw redirect({
to: "/dashboard",
});
}
}
},
});
function LoginComponent() {
const navigate = Route.useNavigate();
const { loginMutation } = useLogin();
const loginUser = async () => {
loginMutation(
{ email: "foo", password: "bar" },
{
onSuccess: async () => {
await navigate({ to: "/dashboard" });
},
}
);
};
return (
<div className="p-2 grid gap-2 place-items-center">
login page
<button onClick={loginUser}>LOGIN USER</button>
</div>
);
}
export const Route = createFileRoute("/login/")({
component: LoginComponent,
beforeLoad: async ({ context }) => {
try {
const data = await context.queryClient.ensureQueryData({
queryKey: ["user"],
queryFn: getUser,
staleTime: Infinity,
});
console.log("data:", data);
if (data) {
throw redirect({
to: "/dashboard",
});
}
} catch (e) {
if (e?.isRedirect) {
throw redirect({
to: "/dashboard",
});
}
}
},
});
function LoginComponent() {
const navigate = Route.useNavigate();
const { loginMutation } = useLogin();
const loginUser = async () => {
loginMutation(
{ email: "foo", password: "bar" },
{
onSuccess: async () => {
await navigate({ to: "/dashboard" });
},
}
);
};
return (
<div className="p-2 grid gap-2 place-items-center">
login page
<button onClick={loginUser}>LOGIN USER</button>
</div>
);
}