DEV Community

Cover image for How to use NextJS pathname in Storybook 8
Mark Kop
Mark Kop

Posted on

How to use NextJS pathname in Storybook 8

When you're using usePathname from NextJS

import { usePathname } from 'next/navigation'
const pathname = usePathname()
Enter fullscreen mode Exit fullscreen mode

And want to change the pathname for Storybook purposes, update your story as follows:

export const Default = {
  parameters: {
    nextjs: {
      appDirectory: true,
      navigation: {
        pathname: '/games'
      }
    }
  },
  args: { ... }
};
Enter fullscreen mode Exit fullscreen mode

Source: qcatch on Feb 22, 2024
https://github.com/storybookjs/storybook/discussions/25470

Top comments (1)

Collapse
 
vasiliy0s profile image
Vasiliy Telyatnikov

Also possible to fix on system-wide level by adding similar config to preview.tsx (preview.ts or preview.js, whenever was used on your project):

// file: .storybook/preview.js
export const parameters = {
  nextRouter: {
    Provider: RouterContext.Provider,
  },
  nextjs: {
    appDirectory: true,
    navigation: {
      pathname: '/',
    },
  },
};
Enter fullscreen mode Exit fullscreen mode

With this way this default args will be applied to all stories you have.