useQuery
hookas/use-queryFreeHook
A hook to query data
Install it
npx shadcn@latest add https://hookas.letstri.dev/r/use-query.jsonSource
1'use client'23import * as React from 'react'45export function useQuery<T>(fetcher: () => Promise<T>) {6 const [error, setError] = React.useState<Error | null>(null)7 const [data, setData] = React.useState<T | null>(null)8 const [status, setStatus] = React.useState<9 'idle' | 'loading' | 'success' | 'error'10 >('idle')1112 const fetch = React.useCallback(async () => {13 setStatus('loading')14 try {15 const result = await fetcher()16 setData(result)17 setStatus('success')18 }19 catch (err) {20 setError(err as Error)21 setStatus('error')22 }23 }, [fetcher])2425 const refetch = React.useCallback(() => {26 fetch()27 }, [fetch])2829 return { data, error, status, refetch }30}
Files it writes
More from hookas
All 30 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| useAsyncEffectuse-async-effect | hookas | Hooks | Free | no deps | |
| useClickOutsideuse-click-outside | hookas | Hooks | Free | no deps | |
| useDebounceCallbackuse-debounced-callback | hookas | Hooks | Free | no deps | |
| useDebounceMemouse-debounced-memo | hookas | Hooks | Free | no deps | |
| useDebounceStateuse-debounced-state | hookas | Hooks | Free | no deps | |
| useElementSizeuse-element-size | hookas | Hooks | Free | no deps | |
| useFullscreenuse-fullscreen | hookas | Hooks | Free | no deps | |
| useIntervaluse-interval | hookas | Hooks | Free | no deps |
