Skip to main content

Documentation Index

Fetch the complete documentation index at: https://makeswift-openapi-sync-cosmos-pr-2639.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

If you haven’t upgraded to 0.14.0 please read the upgrading guide.

Add ReactRuntimeProvider to your Next.js Custom App

If you don’t have a Custom App, you’ll need to add one. Then wrap it with ReactRuntimeProvider and pass your runtime instance to it.
pages/_app.tsx
import { runtime } from "@/makeswift/runtime"
import { ReactRuntimeProvider } from "@makeswift/runtime/next"
import type { AppProps } from "next/app"

export default function App({ Component, pageProps }: AppProps) {
  return (
    <ReactRuntimeProvider runtime={runtime}>
      <Component {...pageProps} />
    </ReactRuntimeProvider>
  )
}

Remove runtime prop from Page component

pages/[[...path]].tsx
import { Page as MakeswiftPage } from '@makeswift/runtime/next'
import { runtime } from '@/makeswift/runtime'

/* ... */

export default function Page({ snapshot }: Props) {
-  return <MakeswiftPage snapshot={snapshot} runtime={runtime} />
+  return <MakeswiftPage snapshot={snapshot} />
}

Use React.lazy instead of next/dynamic for code-splitting

makeswift/components.tsx
import { runtime } from '@/makeswift/runtime'
- import dynamic from 'next/dynamic'
- import { forwardNextDynamicRef } from '@makeswift/runtime/next'
+ import { lazy } from 'react'


runtime.registerComponent(
-  forwardNextDynamicRef(patch =>
-    dynamic(() => patch(import('./Button').then(({ Button }) => Button)))
-  )
+  lazy(() => import('./Button')),
  { type: 'Button', label: 'Button', props: {} }
)

Here is the link to the official release notes.