import preview from "#.storybook/preview"; import { QueryClient, QueryClientProvider, useQuery, } from "@tanstack/solid-query"; import AsyncContent from "../../src/ts/components/common/AsyncContent"; const queryClient = new QueryClient({ defaultOptions: { queries: { retry: false } }, }); const meta = preview.meta({ title: "Common/AsyncContent", // oxlint-disable-next-line typescript/no-unsafe-assignment -- generic component component: AsyncContent as unknown as () => ReturnType, parameters: { layout: "centered", }, tags: ["autodocs"], decorators: [ (Story) => ( ), ], }); function LoadingExample(): ReturnType { const query = useQuery(() => ({ queryKey: ["storybook-loading"], queryFn: async () => new Promise(() => undefined), })); return ( {(data) =>
{data}
}
); } function SuccessExample(): ReturnType { const query = useQuery(() => ({ queryKey: ["storybook-success"], queryFn: async () => "Hello World", })); return ( {(data) =>
{data}
}
); } function ErrorExample(): ReturnType { const query = useQuery(() => ({ queryKey: ["storybook-error"], queryFn: async () => { throw new globalThis.Error("Failed to fetch"); }, })); return ( {() =>
This won't render
}
); } export const Loading = meta.story({ render: () => , }); export const Success = meta.story({ render: () => , }); export const WithError = meta.story({ render: () => , });