Experimental Exports - Hooks & Components
When overriding a native component or creating a new FastStore section, you can import the hooks and components from @faststore/core
to customize specific functionalities without starting from scratch.
Although some hooks are accessible through @faststore/sdk
, certain functionalities, such as accessing cart and session data, require the use of hooks and components from @faststore/core
.
All exports are suffixed with _unstable
to indicate that the support is
experimental.
Usage
Import the hook or component into your component from @faststore/core/experimental
:
import { use{ComponentName}_unstable as use{ComponentName} } from '@faststore/core/experimental'
In the following example, the useCartToggleButton_unstable
hook was imported to enhance the custom buy button
with the ability to toggle the cart, and benefeting from the behavior of the useCartToggleButton.
import React from 'react'
import { Button as UIButton } from '@faststore/ui'
import { useCartToggleButton_unstable as useCartToggleButton } from '@faststore/core/experimental'
export default function CustomBuyButton() {
const { onClick: toggleCart } = useCartToggleButton()
return (
<UIButton
variant="primary"
onClick={() => {
toggleCart()
}}
>
New Buy Button
</UIButton>
)
}
Available Exports
Explore the functionalities of the hooks and components, also find the up-to-date list of available experimental exports directly within the codebase: @faststore/core/experimental (opens in a new tab).
Hooks
Functions that provide a way to import some of the functionalities or state of native components to your custom components. The hooks provided by @faststore/core/experimental
include:
- useSession_unstable
- sessionStore_unstable
- validateSession_unstable
- useCart_unstable
- cartStore_unstable
- useBuyButton_unstable
- useCartToggleButton_unstable
- useCheckoutButton_unstable
- useRemoveButton_unstable
- useQuery_unstable
- useLazyQuery_unstable
- useNewsletter_unstable
- useDiscountPercent_unstable
- useFormattedPrice_unstable
- useLocalizedVariables_unstable
- useProductGalleryQuery_unstable
- useProductLink_unstable
- useProductQuery_unstable
- useProductsPrefetch_unstable
- useSearchHistory_unstable
- useSuggestions_unstable
- useTopSearch_unstable
- useFilter_unstable
- useDelayedFacets_unstable
- useDelayedPagination_unstable
- getShippingSimulation_unstable
- useShippingSimulation_unstable
Components
We highly recommend using the Image component when working with images in your application to enhance storefront performance. This component utilizes a service called Thumbor (opens in a new tab) for image resizing and cropping, with the results cached on a Content Delivery Network (CDN). Utilize it whenever an image is uploaded in the VTEX admin, whether in the CMS or Catalog.
import { HeroImage as UIHeroImage } from '@faststore/ui'
import { Image_unstable as Image } from '@faststore/core/experimental'
export default function CustomHeroImage() {
return (
<UIHeroImage>
<Image
src="https://storeframework.vtexassets.com/arquivos/ids/160965/est.jpg?v=637752924295370000"
alt="Two puffs and two small desks placed together, accompanied by various color pencils."
width={360}
height={240}
sizes="(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw"
/>
</UIHeroImage>
)
}