import { http, HttpResponse } from "msw"; import preview from "../../.storybook/preview.tsx"; import { sleep } from "../sleep.ts"; import { SafariCheck } from "./SafariCheck.tsx"; function Content() { return (

Safari Check passed

); } function userAgentResponse(params: { browserName: string }) { return http.get("http://mock.api/ua", async () => { await sleep(1500); return HttpResponse.json({ browser: { name: params.browserName }, device: params.browserName.includes("Mobile") ? { type: "mobile" } : {}, }); }); } const meta = preview.meta({ title: "Components/SafariCheck", component: SafariCheck, tags: ["autodocs"], decorators: [ (Story) => (
), ], parameters: { msw: { handlers: { ua: userAgentResponse({ browserName: "Safari" }), }, }, }, }); export const SafariDesktop = meta.story({ args: { children: , }, parameters: { msw: { handlers: { ua: userAgentResponse({ browserName: "Safari" }), }, }, }, }); export const SafariMobile = meta.story({ args: { children: , }, parameters: { msw: { handlers: { ua: userAgentResponse({ browserName: "Safari Mobile" }), }, }, }, }); export const OtherBrowser = meta.story({ args: { children: , }, parameters: { msw: { handlers: { ua: userAgentResponse({ browserName: "Chrome" }), }, }, }, }); /** * The check behaviour has been disabled. */ export const Disabled = meta.story({ args: { children: , performCheck: false, }, });