stoplightio / elements

Build beautiful, interactive API Docs with embeddable React or Web Components, powered by OpenAPI and Markdown.
https://stoplight.io/open-source/elements/
Apache License 2.0
1.62k stars 190 forks source link

build dev portal on nextjs for ssr #2067

Open sercanvirlan opened 2 years ago

sercanvirlan commented 2 years ago

Describe the bug

getting mosaic-provider error when i use router as "static"

Warning: Prop `id` did not match. Server: "mosaic-provider-react-aria-0-1" Client: "mosaic-provider-react-aria-0-2"
    at div
    at MosaicInnerProvider (webpack-internal:///./node_modules/@stoplight/mosaic/core.esm.js:13523:3)
    at SSRProvider (webpack-internal:///./node_modules/@stoplight/mosaic/core.esm.js:1818:62)
    at MosaicProvider
    at WithMosaicProvider(PlatformProvider)
    at QueryClientProvider (webpack-internal:///./node_modules/react-query/es/react/QueryClientProvider.js:39:21)
    at WithQueryClientProvider(WithMosaicProvider(PlatformProvider))
    at Provider (webpack-internal:///./node_modules/jotai/esm/index.js:496:3)
    at withPersistenceBoundary(WithQueryClientProvider(WithMosaicProvider(PlatformProvider)))
    at StoplightProjectRouter (webpack-internal:///./node_modules/@stoplight/elements-dev-portal/index.mjs:367:11)
    at div
    at Box (webpack-internal:///./node_modules/@stoplight/mosaic/core.esm.js:693:3)
    at Styled (webpack-internal:///./node_modules/@stoplight/elements-core/index.mjs:2839:1)
    at withStyles(StoplightProjectRouter)
    at main
    at div
    at Home
    at MyApp (webpack-internal:///./pages/_app.js:37:27)
    at ErrorBoundary (webpack-internal:///./node_modules/next/dist/compiled/@next/react-dev-overlay/client.js:8:20584)
    at ReactDevOverlay (webpack-internal:///./node_modules/next/dist/compiled/@next/react-dev-overlay/client.js:8:23125)
    at Container (webpack-internal:///./node_modules/next/dist/client/index.js:357:9)
    at AppContainer (webpack-internal:///./node_modules/next/dist/client/index.js:791:26)
    at Root (webpack-internal:///./node_modules/next/dist/client/index.js:915:27) 

To Reproduce

  1. Create brand new nextjs app via npx create-next-app@latest
  2. then install dev portal via yarn add @stoplight/elements-dev-portal
  3. Update index page as below
import Head from 'next/head'
import { StoplightProject } from '@stoplight/elements-dev-portal';

import '@stoplight/elements-dev-portal/styles.min.css';
import styles from '../styles/Home.module.css'

export default function Home() {
  return (
    <div className={styles.container}>
      <Head>
        <title>Create Next App</title>
        <meta name="description" content="Generated by create next app" />
        <link rel="icon" href="/favicon.ico" />
      </Head>

      <main className={styles.main}>
        <StoplightProject
          router="static"
          projectId="XX"
          hideMocking={true}
          collapseTableOfContents={false}
          staticRouterPath="XXX"
        />
      </main>
    </div>
  )
}
  1. run yarn dev
  2. You'll see the error on console and nothing rendered.

Environment:

mnaumanali94 commented 2 years ago

Maybe related to #1882