-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
useStoryblok not working with Astro Server Islands #907
Comments
hello, @dylanalizon You may want to
// utils/storyblok.ts
import { useStoryblokApi } from '@storyblok/astro';
import type { ISbStory, ISbStories, ISbStoryParams, ISbStoriesParams, ISbCustomFetch, ISbResult } from 'storyblok-js-client';
const version = import.meta.env.DEV ? 'draft' : 'published';
export async function get(slug: string, params?: ISbStoriesParams, fetchOptions?: ISbCustomFetch): Promise<ISbResult> {
const storyblokApi = useStoryblokApi(); // Delayed initialization
const data = await storyblokApi.get(slug, {
version: version,
...params
}, fetchOptions);
return data;
}
export async function getAll(slug: string, params: ISbStoriesParams, entity?: string, fetchOptions?: ISbCustomFetch): Promise<any[]> {
const storyblokApi = useStoryblokApi(); // Delayed initialization
const data = await storyblokApi.getAll(slug, {
version: version,
...params,
}, entity, fetchOptions);
return data;
}
export async function getStory(slug: string, params: ISbStoryParams, fetchOptions?: ISbCustomFetch): Promise<ISbStory> {
const storyblokApi = useStoryblokApi(); // Delayed initialization
const data = await storyblokApi.getStory(slug, {
version: version,
...params,
}, fetchOptions);
return data;
}
export async function getStories(params: ISbStoriesParams, fetchOptions?: ISbCustomFetch): Promise<ISbStories> {
const storyblokApi = useStoryblokApi(); // Delayed initialization
const data = await storyblokApi.getStories({
version: version,
...params
}, fetchOptions);
return data;
} |
Hey @dylanalizon, thank you very much for opening this discussion. Thank you, @JakiChen, for looking into this.
@dipankarmaikap and I are currently working on a new major version of Thank you very much for your patience and understanding. 🙂 |
Expected Behavior
Trying to make an API request from a server islands result in an error
storyblokApiInstance has not been initialized correctly
.Current Behavior
The server islands was not rendered an error was throw.
Steps to Reproduce
useStoryblok
function inside a component which is a "Server Island" (use server:defer on the component)The text was updated successfully, but these errors were encountered: