From 0725c0c8803ba9305eb33213fbcbb78f6f1bfb3c Mon Sep 17 00:00:00 2001 From: Abubaker779 Date: Tue, 19 Nov 2024 19:38:07 +0530 Subject: [PATCH 1/2] issue-#375/now persists callback url across navigation --- components/auth/signin.tsx | 7 +++++-- components/auth/signup.tsx | 8 +++++--- components/ui/authbutton.tsx | 8 ++++++-- components/ui/mobile-menu.tsx | 8 ++++++-- hooks/useSigningUrl.ts | 37 +++++++++++++++++++++++++++++++++++ 5 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 hooks/useSigningUrl.ts diff --git a/components/auth/signin.tsx b/components/auth/signin.tsx index 59c66c037..471cfb1dd 100644 --- a/components/auth/signin.tsx +++ b/components/auth/signin.tsx @@ -21,12 +21,15 @@ import { import { SignInFormData, signInSchema } from "@/utils/form-schema"; import { useSearchParams } from "next/navigation"; import { useToggle } from "@/hooks/useToggle"; +import { useSignUpUrl } from "@/hooks/useSigningUrl"; export default function SignIn() { const [isSubmitting, setIsSubmitting] = useState(false); const [errorMessage, setErrorMessage] = useState(null); + // for handling callback URL const searchParams = useSearchParams(); - const callbackForDesktopApp = searchParams?.get("callback") ?? ""; + const callbackForDesktopApp = searchParams?.get("callback") || ""; + const [signupURL] = useSignUpUrl(); const form = useForm({ resolver: zodResolver(signInSchema), @@ -212,7 +215,7 @@ export default function SignIn() {
Don't have an account?{" "} Sign up diff --git a/components/auth/signup.tsx b/components/auth/signup.tsx index cf0043fee..e51377ee4 100644 --- a/components/auth/signup.tsx +++ b/components/auth/signup.tsx @@ -18,10 +18,10 @@ import { } from "@/components/ui/form"; import { signUpSchema, SignUpFormData } from "@/utils/form-schema"; import { toast, Toaster } from "sonner"; -import { useRouter } from "next/navigation"; import { Label } from "@/components/ui/label"; import { Checkbox } from "@/components/ui/checkbox"; import { useToggle } from "@/hooks/useToggle"; +import { useSignInUrl } from "@/hooks/useSigningUrl"; export default function SignUp() { const [isSubmitting, setIsSubmitting] = useState(false); @@ -35,7 +35,8 @@ export default function SignUp() { heard_about_us: "", }, }); - const router = useRouter(); + // For handling the callback URL + const [signinURL] = useSignInUrl(); const handleSignUp = async (data: SignUpFormData) => { if (isSubmitting) return; @@ -280,7 +281,8 @@ export default function SignUp() {
Already have an account?{" "} Sign in diff --git a/components/ui/authbutton.tsx b/components/ui/authbutton.tsx index 94694e665..8fa97bae2 100644 --- a/components/ui/authbutton.tsx +++ b/components/ui/authbutton.tsx @@ -10,6 +10,7 @@ import { } from "./dropdown-menu"; import { AuthError, User } from "@supabase/supabase-js"; import Link from "next/link"; +import { useSignInUrl, useSignUpUrl } from "@/hooks/useSigningUrl"; export default function AuthButton({ handleSignOut, @@ -18,17 +19,20 @@ export default function AuthButton({ handleSignOut: () => Promise; user: User | null; }) { + const [signinUrl] = useSignInUrl(); + const [signupUrl] = useSignUpUrl(); + return (
{!user ? (
- +
- +