hydrogen-sanity
Version:
Sanity.io toolkit for Hydrogen
30 lines (25 loc) • 1.03 kB
text/typescript
import type {ImageUrlBuilder, SanityImageSource, SanityModernClientLike} from '@sanity/image-url'
import {createImageUrlBuilder} from '@sanity/image-url'
import {useMemo} from 'react'
import {useSanityProviderValue} from './provider'
/**
* Hook that returns a Sanity image URL builder configured with current provider settings.
* Use this to create custom image transformations beyond `useImageUrl`.
*/
export function useImageUrlBuilder(): ImageUrlBuilder {
const {projectId, dataset, apiHost} = useSanityProviderValue()
return useMemo(() => {
return createImageUrlBuilder({
config: () => ({projectId, dataset, apiHost}),
} as SanityModernClientLike)
}, [apiHost, dataset, projectId])
}
/**
* Hook that generates image URLs from Sanity image assets.
* Returns a configured image URL builder for the given source.
*/
export function useImageUrl(source: SanityImageSource): ImageUrlBuilder {
const builder = useImageUrlBuilder()
return builder.image(source)
}
export type * from '@sanity/image-url'