UseConfirmDemo
guarahooks/use-confirm-demoFreeExample
use-confirm's hook in action.
Live preview
live · rendered by the registry
Rendered by guarahooks on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://guarahooks.com/r/use-confirm-demo.jsonSource
1'use client';23import React, { useState } from 'react';45import { Button } from '@/components/ui/button';6import {7 Card,8 CardContent,9 CardDescription,10 CardFooter,11 CardHeader,12 CardTitle,13} from '@/components/ui/card';14import {15 Dialog,16 DialogContent,17 DialogDescription,18 DialogFooter,19 DialogHeader,20 DialogTitle,21 DialogTrigger,22} from '@/components/ui/dialog';2324import { ConfirmationStatus, useConfirm } from '@/hooks/guarahooks/use-confirm';2526export default function UseConfirmDemo() {27 const [open, setOpen] = useState(false);28 const { status, confirm, cancel, reset } = useConfirm();2930 const getStatusMessage = (status: ConfirmationStatus) => {31 switch (status) {32 case 'idle':33 return 'Waiting for action...';34 case 'confirming':35 return 'Are you sure?';36 case 'confirmed':37 return 'Action confirmed!';38 case 'cancelled':39 return 'Action cancelled!';40 }41 };4243 const handleConfirm = () => {44 confirm();45 setOpen(false);46 };4748 const handleCancel = () => {49 cancel();50 setOpen(false);51 };5253 return (54 <Card className="relative max-w-sm w-full">55 <CardHeader>56 <CardTitle>useConfirm</CardTitle>57 <CardDescription>58 This component uses the <code>useConfirm</code> hook to handle user59 confirmation actions.60 </CardDescription>61 </CardHeader>62 <CardContent>63 <p>64 Status: <strong>{getStatusMessage(status)}</strong>65 </p>66 </CardContent>67 <CardFooter className="flex gap-2">68 <Dialog open={open} onOpenChange={setOpen}>69 <DialogTrigger asChild>70 <Button>Delete Item</Button>71 </DialogTrigger>72 <DialogContent>73 <DialogHeader>74 <DialogTitle>Delete Item</DialogTitle>75 <DialogDescription>76 Are you sure you want to delete this item? This action cannot be77 undone.78 </DialogDescription>79 </DialogHeader>80 <DialogFooter>81 <Button variant="outline" onClick={handleCancel}>82 Cancel83 </Button>84 <Button variant="destructive" onClick={handleConfirm}>85 Delete86 </Button>87 </DialogFooter>88 </DialogContent>89 </Dialog>90 {(status === 'confirmed' || status === 'cancelled') && (91 <Button onClick={reset}>Reset</Button>92 )}93 </CardFooter>94// … 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 | |
| UseCookieDemouse-cookie-demo | guarahooks | Examples | Free | no deps | |
| UseCopyToClipboardDemouse-copy-to-clipboard-demo | guarahooks | Examples | Free | no deps |
