0.0.2 • Published 2 years ago
supabase-comments v0.0.2
Supabase Comments
A React library for integrating Supabase powered comments into your applications. Inspired by supabase-comments-extension.
Features
- Configurable and beautiful shadecn/ui
- Built in light and dark modes
- Nested Comments
- Uses Supabase Authentication
Getting Started
- Install this package and it's peer dependencies
npm install --save @supabase/supabase-js @supabase/auth-ui-shared @supabase/auth-ui-react @tanstack/react-query supabase-comments- Go to Supabase SQL editor
- Copy SQL commands from 01_init.sql and run them in the SQL editor. This will create tables needed to store the comments
- Add imports and initialize supabase client
import { createClient } from "@supabase/supabase-js";
import { CommentsSection } from "supabase-comments";
import "supabase-comments/style.css";
const SUPABASE_URL = "INSERT_SUPABASE_URL";
const SUPABASE_ANON_KEY = "INSERT_SUPABASE_ANON_KEY";
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);- Add the
CommentsSectioninto your react app.
<CommentsSection
topic="supabase-comments-demo-topic"
supabaseClient={supabase}
/>Adjusting the Theme
- Go to the shadecn theme generator, generate a theme and copy the code.
- Paste the css into a file called
shadecn-theme.css - Add the import underneath the
import supabase-comments/style.css.
import supabase-comments/style.css
import "./shadecn-theme.css"Upcoming Features
- Add
onAuthenticatefunction to give option for custom Authentication - Edit / delete comments
- Add comment reactions
- Markdown editing options (e.g. bold, italic, etc.)
API
export interface CommentsSectionProps {
supabaseClient: SupabaseClient; // supabaase client
topic: string; // the topic or thread
authComponent?: ReactNode; // the auth component within the dialog
mode?: "light" | "dark"; // light or dark mode
}