fix: fix broken website CSS by refactoring styled-components SSR logic #257
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A number of mistakes in the code resulted in the page not being properly server-side rendered in the Next.JS static export. This means all DOM hydration and stylesheet injection was being performed client-side, which defeats the purpose of a static export / SSR with NextJS. This also seemed to be non-deterministic in terms of the order stylesheets were injected into the
<head>
client-side, which resulted in buggy / unstyled rendering for some users.The following changes seems to have fixed the issue by restoring expected SSR functionality:
createGlobalStyle
functionality fromstyled-components
layout.tsx
is server side rendered by moving all context providers to a separate client component.Suspense
boundary that was required for using the NextJSuseSearchParams
hook. Using native browser APIs (window.location.search
) works fine here, so no need for a suspense boundary with this custom hook.