stack/examples/supabase/app/page.tsx
Zai Shi 3d2be1f84c
Supabase docs & examples (#219)
* added supabase example

* removed unused files

* added jwt endpoint

* supabase server action

* removed unused

* updated dependencies

* reverted package changes

* fixed bugs

* added supabase docs

* updated docs

* updated pnpm lock
2024-09-01 02:32:07 +02:00

40 lines
1021 B
TypeScript

'use client';
import { createSupabaseClient } from "@/utils/supabase-client";
import { useStackApp, useUser } from "@stackframe/stack";
import Link from "next/link";
import { useEffect, useState } from "react";
export default function Page() {
const app = useStackApp();
const user = useUser();
const supabase = createSupabaseClient();
const [data, setData] = useState<null | any[]>(null);
useEffect(() => {
supabase.from("data").select().then(({ data }) => setData(data ?? []));
}, []);
const listContent = data === null ?
<p>Loading...</p> :
data.length === 0 ?
<p>No notes found</p> :
data.map((note) => <li key={note.id}>{note.text}</li>);
return (
<div>
{
user ?
<>
<p>You are signed in</p>
<p>User ID: {user.id}</p>
<Link href={app.urls.signOut}>Sign Out</Link>
</> :
<Link href={app.urls.signIn}>Sign In</Link>
}
<h3>Supabase data</h3>
<ul>{listContent}</ul>
</div>
)
}