UseFetchDemo
guarahooks/use-fetch-demoFreeExample
use-fetch's hook in action.
Install it
npx shadcn@latest add https://guarahooks.com/r/use-fetch-demo.jsonSource
1'use client';23import React, { useState } from 'react';45import { Badge } from '@/components/ui/badge';6import { Button } from '@/components/ui/button';7import {8 Card,9 CardContent,10 CardDescription,11 CardFooter,12 CardHeader,13 CardTitle,14} from '@/components/ui/card';15import { Input } from '@/components/ui/input';16import { Label } from '@/components/ui/label';17import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';1819import {20 FetchProvider,21 useFetch,22 useFetchContext,23 type FetchConfig,24} from '@/hooks/guarahooks/use-fetch';2526interface HttpBinResponse {27 args: Record<string, string>;28 data: string;29 files: Record<string, string>;30 form: Record<string, string>;31 headers: Record<string, string>;32 json: Record<string, string | number | boolean | null> | null;33 origin: string;34 url: string;35}3637interface PostData {38 title: string;39 body: string;40 userId: number;41}4243interface Post extends PostData {44 id: number;45}4647// Demo component that shows GET request48function GetDemo() {49 const { data, error, loading, refetch, abort, aborted } =50 useFetch<HttpBinResponse>('/delay/3');5152 return (53 <Card>54 <CardHeader>55 <CardTitle>GET Request</CardTitle>56 <CardDescription>57 Fetches data with a 3-second delay to test abort functionality58 </CardDescription>59 </CardHeader>60 <CardContent className="space-y-4">61 <div className="flex items-center gap-2">62 <Badge variant={loading ? 'default' : 'secondary'}>63 {loading ? 'Loading...' : 'Idle'}64 </Badge>65 {aborted && <Badge variant="destructive">Aborted</Badge>}66 </div>6768 {error && <p className="text-destructive">Error: {error.message}</p>}6970 {!loading && !aborted && data && (71 <div>72 <Label className="text-sm font-medium">Response:</Label>73 <pre className="mt-2 p-3 rounded-md bg-muted text-sm overflow-auto max-h-32">74 {JSON.stringify(data, null, 2)}75 </pre>76 </div>77 )}78 </CardContent>79 <CardFooter className="flex justify-end gap-2">80 <Button variant="outline" onClick={abort} disabled={!loading}>81 Abort82 </Button>83 <Button onClick={refetch} disabled={loading}>84 Refetch85 </Button>86 </CardFooter>87 </Card>88 );89}9091// Demo component that shows POST request92function PostDemo() {93 const [title, setTitle] = useState('Test Post');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 | |
| UseConfirmDemouse-confirm-demo | guarahooks | Examples | Free | no deps | |
| UseCookieDemouse-cookie-demo | guarahooks | Examples | Free | no deps |
