Centralizing resources
If you use a resource multiple times, you should definitely put it in a central place.
/hooks/hello.tsx
function getHelloSchema() { return getSingleSchema<Hello>("/api/hello", fetchAsJson)}function useHelloMix() { const query = useQuery(getHelloSchema, []) useAutoFetchMixture(query) return query}
Then use it in your components
/comps/mypage.tsx
import { useHello } from "hooks/hello.tsx"export function MyPage() { const { data, error, loading } = useHello() // Do some stuff if (error) return <Error error={error} /> if (!data) return <Loading /> return <>{JSON.stringify(data)}</>}
/comps/mycard.tsx
import { useHello } from "hooks/hello.tsx"export function MyCard() { const { data, error, loading } = useHello() // Do some other stuff if (error) return <Error error={error} /> if (loading) return <Loading /> return <>{JSON.stringify(data)}</>}