Next.js Discord

Discord Forum

Is all this boilerplate necessary to use Zustand?

Unanswered
Gray-tailed Tattler posted this in #help-forum
Open in Discord
Gray-tailed TattlerOP
Just reading this -> https://docs.pmnd.rs/zustand/guides/nextjs

I thought the sell of zustand was that it was easy to set up and get going. And I remember it being a lot easier.

What's wrong with just using it like so

import { create } from 'zustand'

export type MobileDrawerStore = {
  isMobileDrawerOpen: boolean
  toggleMobileDrawer: () => void
  closeMobileDrawer: () => void
  openMobileDrawer: () => void
}

export const useMobileDrawerStore = create<MobileDrawerStore>((set) => ({
  isMobileDrawerOpen: false,
  toggleMobileDrawer: () => set((state) => ({ isMobileDrawerOpen: !state.isMobileDrawerOpen })),
  closeMobileDrawer: () => set({ isMobileDrawerOpen: false }),
  openMobileDrawer: () => set({ isMobileDrawerOpen: true }),
}))

  const isMobileDrawerOpen = useMobileDrawerStore(state => state.isMobileDrawerOpen)

1 Reply

Sedge Wren
Since app router can't have global store, we need to provide the hooks in context. It's not really a zustand thing but app router