UNPKG

@storybook/nextjs-vite

Version:

Storybook for Next.js and Vite: Develop, document, and test UI components in isolation

64 lines (62 loc) 2.63 kB
import "../../_browser-chunks/chunk-SL3VIQZ3.js"; // src/export-mocks/router/index.ts import { NextjsRouterMocksNotAvailable } from "storybook/internal/preview-errors"; import singletonRouter, * as originalRouter from "next/dist/client/router"; import { fn } from "storybook/test"; export * from "next/dist/client/router"; var defaultRouterState = { route: "/", asPath: "/", basePath: "/", pathname: "/", query: {}, isFallback: !1, isLocaleDomain: !1, isReady: !0, isPreview: !1 }, routerAPI, createRouter = (overrides) => { let routerActions = { push: fn((..._args) => Promise.resolve(!0)).mockName("next/router::useRouter().push"), replace: fn((..._args) => Promise.resolve(!0)).mockName("next/router::useRouter().replace"), reload: fn((..._args) => { }).mockName("next/router::useRouter().reload"), back: fn((..._args) => { }).mockName("next/router::useRouter().back"), forward: fn(() => { }).mockName("next/router::useRouter().forward"), prefetch: fn((..._args) => Promise.resolve()).mockName("next/router::useRouter().prefetch"), beforePopState: fn((..._args) => { }).mockName("next/router::useRouter().beforePopState") }, routerEvents = { on: fn((..._args) => { }).mockName("next/router::useRouter().events.on"), off: fn((..._args) => { }).mockName("next/router::useRouter().events.off"), emit: fn((..._args) => { }).mockName("next/router::useRouter().events.emit") }; return overrides && Object.keys(routerActions).forEach((key) => { key in overrides && (routerActions[key] = fn((...args) => overrides[key](...args)).mockName(`useRouter().${key}`)); }), overrides?.events && Object.keys(routerEvents).forEach((key) => { key in routerEvents && (routerEvents[key] = fn((...args) => overrides.events[key](...args)).mockName(`useRouter().events.${key}`)); }), routerAPI = { ...defaultRouterState, ...overrides, ...routerActions, // @ts-expect-error TODO improve typings events: routerEvents }, singletonRouter.router = routerAPI, singletonRouter.readyCallbacks.forEach((cb) => cb()), singletonRouter.readyCallbacks = [], routerAPI; }, getRouter = () => { if (!routerAPI) throw new NextjsRouterMocksNotAvailable({ importType: "next/router" }); return routerAPI; }, router_default = singletonRouter, useRouter2 = fn(originalRouter.useRouter).mockName("next/router::useRouter"), withRouter2 = fn(originalRouter.withRouter).mockName("next/router::withRouter"); export { createRouter, router_default as default, getRouter, useRouter2 as useRouter, withRouter2 as withRouter };