Files
next.js/examples/with-styled-components/lib/styled-components-registry.tsx
7474f10c96 chore(examples): updated the example of with-styled-components (#70796)
This PR updates the with-styled-components example to use the App
Router. Here are the changes that have been made:

- Renamed the `pages` folder to the `app` folder.
- Updated the routing for `/` & `/about` files to align with the App
Router.
- Added the `layout.tsx` file as part of the App Router.
- Updated the `package.json` file.

The following actions were performed as part of this PR:

- Ran `pnpm prettier-check` with no issues found.
- Executed the `pnpm check-examples` script.

CC: @samcx

---------

Co-authored-by: samcx <[email protected]>
2024-10-04 11:14:57 -07:00

28 lines
741 B
TypeScript

"use client";
import React, { useState } from "react";
import { useServerInsertedHTML } from "next/navigation";
import { ServerStyleSheet, StyleSheetManager } from "styled-components";
export default function StyledComponentsRegistry({
children,
}: {
children: React.ReactNode;
}) {
const [styledComponentsStyleSheet] = useState(() => new ServerStyleSheet());
useServerInsertedHTML(() => {
const styles = styledComponentsStyleSheet.getStyleElement();
styledComponentsStyleSheet.instance.clearTag();
return <>{styles}</>;
});
if (typeof window !== "undefined") return <>{children}</>;
return (
<StyleSheetManager sheet={styledComponentsStyleSheet.instance}>
{children}
</StyleSheetManager>
);
}