Skip to content

Commit e8cb922

Browse files
authored
Merge pull request #91 from Team-INSERT/feat/styled-components
스타일드 컴포넌트 ctx 설정
2 parents fe1a2fc + ebeaa06 commit e8cb922

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

src/provider/provider.helper.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@ import { RecoilRoot } from "recoil";
55
import ReactQueryProvider from "./reactQueryProvider.helper";
66
import LayoutProvider from "./layoutProvider.helper";
77
import ApolloClientProvider from "./apolloClientProvider.helper";
8+
import StyledComponentsProvider from "./styledComponentsProvider.helper";
89

910
const Provider = ({ children }: React.PropsWithChildren) => {
1011
return (
1112
<ReactQueryProvider>
1213
<ApolloClientProvider>
1314
<RecoilRoot>
14-
<LayoutProvider>{children}</LayoutProvider>
15+
<LayoutProvider>
16+
<StyledComponentsProvider>{children}</StyledComponentsProvider>
17+
</LayoutProvider>
1518
</RecoilRoot>
1619
</ApolloClientProvider>
1720
</ReactQueryProvider>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
"use client";
2+
3+
import React, { useState } from "react";
4+
import { useServerInsertedHTML } from "next/navigation";
5+
import { ServerStyleSheet, StyleSheetManager } from "styled-components";
6+
7+
export default function StyledComponentsProvider({
8+
children,
9+
}: {
10+
children: React.ReactNode;
11+
}) {
12+
const [styledComponentsStyleSheet] = useState(() => new ServerStyleSheet());
13+
14+
useServerInsertedHTML(() => {
15+
const styles = styledComponentsStyleSheet.getStyleElement();
16+
styledComponentsStyleSheet.instance.clearTag();
17+
// eslint-disable-next-line
18+
return <>{styles}</>;
19+
});
20+
21+
// eslint-disable-next-line
22+
if (typeof window !== "undefined") return <>{children}</>;
23+
24+
return (
25+
<StyleSheetManager sheet={styledComponentsStyleSheet.instance}>
26+
{children}
27+
</StyleSheetManager>
28+
);
29+
}

0 commit comments

Comments
 (0)