UseNextAuthDemo
guarahooks/use-next-auth-demoFreeExample
use-next-auth's hook in action.
Install it
npx shadcn@latest add https://guarahooks.com/r/use-next-auth-demo.jsonSource
1'use client';23import { useState } from 'react';45import { SessionProvider } from 'next-auth/react';67import { toast } from 'sonner';89import { Badge } from '@/components/ui/badge';10import { Button } from '@/components/ui/button';11import {12 Card,13 CardContent,14 CardDescription,15 CardHeader,16 CardTitle,17} from '@/components/ui/card';1819import { useNextAuth } from '@/hooks/guarahooks/use-next-auth';2021export default function UseNextAuthDemo() {22 const [refreshInterval, setRefreshInterval] = useState<number | undefined>();23 const [lastSessionChange, setLastSessionChange] = useState<string>('');2425 // Check if we're in a NextAuth SessionProvider context26 let hookData;27 let hasError = false;2829 try {30 hookData = useNextAuth({31 onSessionChange: (session, status) => {32 const timestamp = new Date().toLocaleTimeString();33 setLastSessionChange(`${status} at ${timestamp}`);34 toast.info(`Session changed: ${status}`, {35 description: `Time: ${timestamp}`,36 });37 },38 refreshInterval,39 onError: (error) => {40 toast.error('Authentication Error', {41 description: error.message,42 });43 },44 });45 } catch (error) {46 hasError = true;47 hookData = {48 session: null,49 status: 'unauthenticated' as const,50 isAuthenticated: false,51 signIn: () => Promise.resolve(undefined),52 signOut: () => Promise.resolve(undefined),53 refresh: () => Promise.resolve(),54 };55 }5657 const { session, status, isAuthenticated, signIn, signOut, refresh } =58 hookData;5960 // Show NextAuth setup error if not properly configured61 if (hasError) {62 return (63 <div className="w-full max-w-2xl mx-auto space-y-6">64 <Card>65 <CardHeader>66 <CardTitle>NextAuth.js Setup Required</CardTitle>67 <CardDescription>68 This demo requires NextAuth.js to be properly configured69 </CardDescription>70 </CardHeader>71 <CardContent className="space-y-4">72 <div className="p-4 border border-amber-200 bg-amber-50 dark:border-amber-800 dark:bg-amber-950 rounded-md">73 <p className="text-sm text-amber-800 dark:text-amber-200">74 <strong>Missing SessionProvider:</strong> The useNextAuth hook75 requires your app to be wrapped in NextAuth's SessionProvider.76 </p>77 </div>7879 <div className="space-y-2">80// … truncated
What it pulls in
Other registry items
Files it writes
More from guarahooks
All 100 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| UseAbortControllerDemouse-abort-controller-demo | guarahooks | Examples | Free | no deps | |
| UseArrayStateDemouse-array-state-demo | guarahooks | Examples | Free | no deps | |
| UseAxiosDemouse-axios-demo | guarahooks | Examples | Free | no deps | |
| UseBatteryStatusDemouse-battery-status-demo | guarahooks | Examples | Free | no deps | |
| UseBetterAuthDemouse-better-auth-demo | guarahooks | Examples | Free | no deps | |
| UseClickOutsideDemouse-click-outside-demo | guarahooks | Examples | Free | no deps | |
| UseConfirmDemouse-confirm-demo | guarahooks | Examples | Free | no deps | |
| UseCookieDemouse-cookie-demo | guarahooks | Examples | Free | no deps |
