{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-timeout-demo",
  "title": "UseTimeoutDemo",
  "description": "use-timeout's hook in action.",
  "registryDependencies": [
    "card",
    "button",
    "https://guarahooks.com/r/use-timeout.json"
  ],
  "files": [
    {
      "path": "registry/example/use-timeout-demo.tsx",
      "content": "'use client';\n\nimport React, { useState } from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport {\n  Card,\n  CardContent,\n  CardDescription,\n  CardFooter,\n  CardHeader,\n  CardTitle,\n} from '@/components/ui/card';\n\nimport { useTimeout } from '@/hooks/guarahooks/use-timeout';\n\nexport default function UseTimeoutDemo() {\n  const [message, setMessage] = useState('Click \"Start\" to begin the timeout.');\n  const [active, setActive] = useState(false);\n\n  // Execute callback after 3 seconds when active is true\n  useTimeout(\n    () => {\n      setMessage('Timeout expired!');\n      setActive(false);\n    },\n    active ? 3000 : null,\n  );\n\n  return (\n    <Card className=\"relative max-w-sm w-full\">\n      <CardHeader>\n        <CardTitle>useTimeout</CardTitle>\n        <CardDescription>\n          This component demonstrates the <code>useTimeout</code> hook. Click\n          start to trigger a timeout.\n        </CardDescription>\n      </CardHeader>\n      <CardContent>\n        <p className=\"text-lg font-bold\">{message}</p>\n      </CardContent>\n      <CardFooter className=\"space-x-2\">\n        <Button\n          onClick={() => {\n            setMessage('Waiting for timeout...');\n            setActive(true);\n          }}\n        >\n          Start\n        </Button>\n        <Button\n          variant=\"secondary\"\n          onClick={() => {\n            setMessage('Click \"Start\" to begin the timeout.');\n            setActive(false);\n          }}\n        >\n          Reset\n        </Button>\n      </CardFooter>\n    </Card>\n  );\n}\n",
      "type": "registry:example",
      "target": "components/example/use-timeout-demo.tsx"
    }
  ],
  "type": "registry:example"
}