diff --git a/compass/app/resource/page.tsx b/compass/app/resource/page.tsx index 33f33e7..79ef1a9 100644 --- a/compass/app/resource/page.tsx +++ b/compass/app/resource/page.tsx @@ -27,9 +27,9 @@ export default function Page() { Welcome! Below you will find a list of resources for the - Compass Center's trained advocates. These materials serve to - virtually provide a collection of advocacy, resource, and - hotline manuals and information. + Compass Center's trained advocates. These materials + serve to virtually provide a collection of advocacy, + resource, and hotline manuals and information. {" "} If you are an advocate looking for the contact diff --git a/compass/utils/supabase/client.ts b/compass/utils/supabase/client.ts new file mode 100644 index 0000000..6f158a1 --- /dev/null +++ b/compass/utils/supabase/client.ts @@ -0,0 +1,8 @@ +import { createBrowserClient } from "@supabase/ssr"; + +export function createClient() { + return createBrowserClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY! + ); +} diff --git a/compass/utils/supabase/middleware.ts b/compass/utils/supabase/middleware.ts new file mode 100644 index 0000000..13fc50a --- /dev/null +++ b/compass/utils/supabase/middleware.ts @@ -0,0 +1,60 @@ +import { createServerClient, type CookieOptions } from "@supabase/ssr"; +import { NextResponse, type NextRequest } from "next/server"; + +export async function updateSession(request: NextRequest) { + let response = NextResponse.next({ + request: { + headers: request.headers, + }, + }); + + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + get(name: string) { + return request.cookies.get(name)?.value; + }, + set(name: string, value: string, options: CookieOptions) { + request.cookies.set({ + name, + value, + ...options, + }); + response = NextResponse.next({ + request: { + headers: request.headers, + }, + }); + response.cookies.set({ + name, + value, + ...options, + }); + }, + remove(name: string, options: CookieOptions) { + request.cookies.set({ + name, + value: "", + ...options, + }); + response = NextResponse.next({ + request: { + headers: request.headers, + }, + }); + response.cookies.set({ + name, + value: "", + ...options, + }); + }, + }, + } + ); + + await supabase.auth.getUser(); + + return response; +} diff --git a/compass/utils/supabase/server.ts b/compass/utils/supabase/server.ts new file mode 100644 index 0000000..aeeb94b --- /dev/null +++ b/compass/utils/supabase/server.ts @@ -0,0 +1,36 @@ +import { createServerClient, type CookieOptions } from "@supabase/ssr"; +import { cookies } from "next/headers"; + +export function createClient() { + const cookieStore = cookies(); + + return createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + get(name: string) { + return cookieStore.get(name)?.value; + }, + set(name: string, value: string, options: CookieOptions) { + try { + cookieStore.set({ name, value, ...options }); + } catch (error) { + // The `set` method was called from a Server Component. + // This can be ignored if you have middleware refreshing + // user sessions. + } + }, + remove(name: string, options: CookieOptions) { + try { + cookieStore.set({ name, value: "", ...options }); + } catch (error) { + // The `delete` method was called from a Server Component. + // This can be ignored if you have middleware refreshing + // user sessions. + } + }, + }, + } + ); +}