UseKyDemo
guarahooks/use-ky-demoFreeExample
use-ky's hook in action.
Install it
npx shadcn@latest add https://guarahooks.com/r/use-ky-demo.jsonSource
1'use client';23import * as React from 'react';4import { useState } from 'react';56import { Badge } from '@/components/ui/badge';7import { Button } from '@/components/ui/button';8import {9 Card,10 CardContent,11 CardDescription,12 CardFooter,13 CardHeader,14 CardTitle,15} from '@/components/ui/card';16import { Input } from '@/components/ui/input';17import { Label } from '@/components/ui/label';18import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';1920import {21 KyProvider,22 useKyContext,23 useKyGet,24 useKyInstance,25 useKyPost,26 type KyConfig,27} from '@/hooks/guarahooks/use-ky';2829interface HttpBinResponse {30 args: Record<string, string>;31 data: string;32 files: Record<string, string>;33 form: Record<string, string>;34 headers: Record<string, string>;35 json: Record<string, any> | null;36 origin: string;37 url: string;38}3940interface PostData {41 title: string;42 body: string;43 userId: number;44}4546interface PostResponse extends PostData {47 id: number;48}4950function GetDemo() {51 const { data, error, loading, refetch, abort, aborted } =52 useKyGet<HttpBinResponse>('delay/3', { retries: 2, timeout: 5000 });5354 return (55 <Card>56 <CardHeader>57 <CardTitle>GET Request</CardTitle>58 <CardDescription>59 Returns data after a 3-second delay to demonstrate abort60 functionality.61 </CardDescription>62 </CardHeader>63 <CardContent className="space-y-4">64 <div className="flex items-center gap-2">65 <Badge variant={loading ? 'default' : 'secondary'}>66 {loading ? 'Loading...' : 'Idle'}67 </Badge>68 {aborted && <Badge variant="destructive">Aborted</Badge>}69 </div>70 {error && <p className="text-destructive">Error: {error.message}</p>}71 {!loading && !aborted && data && (72 <pre className="mt-2 p-3 rounded-md bg-muted text-sm overflow-auto max-h-32">73 {JSON.stringify(data, null, 2)}74 </pre>75 )}76 </CardContent>77 <CardFooter className="flex justify-end gap-2">78 <Button variant="outline" onClick={abort} disabled={!loading}>79 Abort80 </Button>81 <Button onClick={refetch} disabled={loading}>82 Refetch83 </Button>84 </CardFooter>85 </Card>86 );87}8889function PostDemo() {90 const [title, setTitle] = useState('Test Title');91 const [body, setBody] = useState('Test body content');9293 const {94 data,95 error,96 loading,97 refetch: createPost,98// … 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 |
