devbookhq/sdk

The UI library requires an additional setup when used with SSR frameworks

Closed this issue · 1 comments

When using the UI library with a SSR frameworks (Next.js, Docusaurus) you must dynamically import the library otherwise you get an error because a browser only object ‘self‘ is undefined.

This should be fixed (@devbookhq/ui@1.0.27) but Next.js is still reporting warning

Warning: useLayoutEffect does nothing on the server, because its effect cannot be encoded into the server renderer's output format. This will lead to a mismatch between the initial, non-hydrated UI and the intended UI. To avoid this, useLayoutEffect should only be used in components that render exclusively on the client. See https://reactjs.org/link/uselayouteffect-ssr for common fixes.

because we do use useLayoutEffect to add the terminal and editor to the dom. This would be happening even if we used useEffect and should not affect hydration.