Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Global theme is not applied after Next.js Fast Refresh #1328

Open
NAsejevs opened this issue Mar 29, 2024 · 4 comments
Open

Global theme is not applied after Next.js Fast Refresh #1328

NAsejevs opened this issue Mar 29, 2024 · 4 comments

Comments

@NAsejevs
Copy link

NAsejevs commented Mar 29, 2024

Steps to reproduce

Scenario 1:

  1. Create custom global Flowbite theme
  2. Wrap your page content in Flowbite component with theme passed as theme prop
  3. Launch Next.js dev server and perform Fast Refresh
  4. Notice no custom theme for any component
  5. Hard refresh
  6. Notice custom theme is applied as expected

Scenario 2:

  1. Create custom global Flowbite theme
  2. Wrap your page content in Flowbite component with theme passed as theme prop
  3. Launch Next.js dev server and open any Dropdown
  4. Notice no custom theme applied to Dropdown items
  5. Perform Fast Refresh
  6. Notice custom theme applied to Dropdown items

I assume both scenarios are somehow related to each other, hence no separate bug report.

Current behavior

Custom theme is hard to use during development. Also, Dropdowns avoid custom themes altogether.

Expected behavior

Custom theme to be applied as expected.

Context

I'm wrapping my Next.js app content in Flowbite component as follows:

layout.tsx

<body className={classNames(poppins.className, "dark")}>
    <Flowbite theme={{ theme: theme }}>
        <Navigation />
        {children}
    </Flowbite>
</body>

Running latest verion of Next.js, Flowbite and Tailwind.

tailwind.config.ts

const config: Config = {
    content: [
        "./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
        "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
        "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
        "./src/configs/**/*.{js,ts,jsx,tsx,mdx}",
        "node_modules/flowbite-react/lib/esm/**/*.js",
    ],
    theme: {},
    plugins: [require("flowbite/plugin")],
}

./src/configs/theme.ts contains the custom Flowbite theme

I have tried rendering all themed components with "use client", but this has no different results.

@NAsejevs
Copy link
Author

So it looks like themes work as expected with Fast Refresh on Next.js 13.0.3, but no longer work with Fast Refresh on 13.0.4.

@jordanful
Copy link

I am using Next 13+ and I can only get themes to work if I directly wrap the individual components. Wrapping the entire app (e.g. in the layout) does not theme my components (doesn't seem related to fast refresh here). Client vs server components didn't seem to make a difference either.

@SutuSebastian
Copy link
Collaborator

I am using Next 13+ and I can only get themes to work if I directly wrap the individual components. Wrapping the entire app (e.g. in the layout) does not theme my components (doesn't seem related to fast refresh here). Client vs server components didn't seem to make a difference either.

Does it work when u refresh the page?

@jordanful
Copy link

Does it work when u refresh the page?

Negative

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants