const result = await createImageContent({ image: file, contentTitle: ‘Photo from gallery’, visibility: [‘PUBLIC’], })
But I’m getting this error: Type ‘“PUBLIC”’ is not assignable to type ‘ContentVisibility’
In ContentVisibility there is only ‘DISCOVERABLE’ | ‘LINKABLE’.
Does anyone knows what means each value and what is the difference?
Thanks for your feedback. We will update the docs very soon explaining in more detail what the different fields do.
Here you have a sneak peak:
title: useCreateImageContent
description: |-
The useCreateImageContent hook combines image upload with content creation to generate user-generated content entries. Built on top of useImageUpload, it extends the basic upload functionality with content management features including titles, visibility controls, and unique IDs for sharing and discovery.
Visibility Options
The visibility parameter accepts an optional array of ContentVisibility values:
DISCOVERABLE: Makes content eligible for Shop’s recommendation and discovery systems. Your content can appear in feeds and recommendations across the Shop app.
LINKABLE: Enables shareable URLs for the content. Required if you want users to share content via direct links (generates a shareableUrl).
Both values: ['DISCOVERABLE', 'LINKABLE'] - Maximum reach with content both discoverable in recommendations and shareable via links.
No values (null or []): Content remains private within your Mini, not discoverable or shareable externally.
Use Cases
Choose visibility settings based on your content strategy:
User reviews with photos: Use both DISCOVERABLE and LINKABLE for maximum reach
Private user collections: Omit visibility or use empty array
Shareable but not public: Use LINKABLE only
Featured content: Use DISCOVERABLE to appear in recommendations
The hook handles both the image upload pipeline and content entity creation in a single operation, automatically associating content with your Mini and integrating with Shop’s content systems.