update pay function
This commit is contained in:
44
boilerplate-chakra-pro-main/utils/auth-helpers/client.ts
Normal file
44
boilerplate-chakra-pro-main/utils/auth-helpers/client.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
'use client';
|
||||
|
||||
import { createClient } from '@/utils/supabase/client';
|
||||
import { type Provider } from '@supabase/supabase-js';
|
||||
import { getURL } from '@/utils/helpers';
|
||||
import { redirectToPath } from './server';
|
||||
import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';
|
||||
|
||||
export async function handleRequest(
|
||||
e: React.FormEvent<HTMLFormElement>,
|
||||
requestFunc: (formData: FormData) => Promise<string>,
|
||||
router: AppRouterInstance | null = null
|
||||
): Promise<boolean | void> {
|
||||
// Prevent default form submission refresh
|
||||
e.preventDefault();
|
||||
|
||||
const formData = new FormData(e.currentTarget);
|
||||
const redirectUrl: string = await requestFunc(formData);
|
||||
|
||||
if (router) {
|
||||
// If client-side router is provided, use it to redirect
|
||||
return router.push(redirectUrl);
|
||||
} else {
|
||||
// Otherwise, redirect server-side
|
||||
return await redirectToPath(redirectUrl);
|
||||
}
|
||||
}
|
||||
|
||||
export async function signInWithOAuth(e: React.FormEvent<HTMLFormElement>) {
|
||||
// Prevent default form submission refresh
|
||||
e.preventDefault();
|
||||
const formData = new FormData(e.currentTarget);
|
||||
const provider = String(formData.get('provider')).trim() as Provider;
|
||||
|
||||
// Create client-side supabase client and call signInWithOAuth
|
||||
const supabase = createClient();
|
||||
const redirectURL = getURL('/auth/callback');
|
||||
await supabase.auth.signInWithOAuth({
|
||||
provider: provider,
|
||||
options: {
|
||||
redirectTo: redirectURL
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user