session-management-1
A simple session management card.
Sessions
Installation
npx shadcn@latest add https://shadcn-ui-clerk-blocks.vercel.app/r/session-management-1.jsonUsage
Basic
import SessionManagement1 from "@/components/session-management-1";<SessionManagement1 />With Manual Fetching
Server
import SessionManagement1 from "@/components/session-management-1";
import { fetchSessions } from "@/components/session-management-1/fetchers";
export default async function Page() {
const sessions = await fetchSessions();
if (!sessions) return;
return <SessionManagement1 sessions={sessions} />;
}Client
import { fetchSessions } from "@/components/session-management-1/fetchers";
export async function GET() {
const sessions = await fetchSessions();
if (!sessions) {
throw new Error("Failed to retrieve sessions.");
}
return Response.json({ sessions });
}"use client";
import { useEffect, useState } from "react";
import { Session } from "@clerk/backend";
import SessionManagement1Inner from "@/components/session-management-1/inner";
import { formatSessions } from "@/components/session-management-1/utils";
import { Spinner } from "@/components/ui/spinner";
async function loadSessions() {
let res = await fetch("/api/sessions");
let { sessions }: { sessions: Session[] } = await res.json();
return sessions;
}
export default function Page() {
const [loading, setLoading] = useState<boolean>(true);
const [sessions, setSessions] = useState<Session[] | null>(null);
useEffect(() => {
loadSessions()
.then((s) => setSessions(s))
.finally(() => setLoading(false));
}, []);
if (loading) {
return <Spinner />;
}
if (!sessions) return;
return <SessionManagement1Inner sessions={formatSessions(sessions)} />;
}Props
Prop
Type