From 7c11ff87a66900126fbf458a3237f8dd0a78fcfc Mon Sep 17 00:00:00 2001 From: Francisco Pessano Date: Mon, 3 Jul 2023 20:16:55 -0300 Subject: [PATCH] feat: added styled-components --- .DS_Store | Bin 8196 -> 0 bytes packages/client/next.config.js | 10 ++++++++ packages/client/package.json | 2 +- packages/client/pages/_document.tsx | 25 +++++++++++++++++++ packages/client/tsconfig.json | 36 +++++++++++++++++++++++----- 5 files changed, 66 insertions(+), 7 deletions(-) delete mode 100644 .DS_Store create mode 100644 packages/client/next.config.js create mode 100644 packages/client/pages/_document.tsx diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index cf580a2fa517bc9ab4c8daa03b598d5220d98913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHM%We}f6uoXs9%>8WB^3#zk%|P1QkphYst{5LVZpXRAOt8RnV}7xjH5gnRaGGy zHoyn4V#S^X8~6ZzffZ84XRv~E?P-{C64(`_+S2$=#`pTz$H$(rLqwv`b+bfsM3lnC zHZzTEMB;M3hSEg%QIYnv^eB#A6Nz~1C{~HfMvik@INqscQ&WgnD@Re zwYg=$GH@gr;Pt`5#Wo+>zP4)VK&G|;uv2)f67I1NP%%zu^P%l)t3pwy-aUvgRD@d$ zp~F$`usdu%w0&)LI0+q2B19J94n-(*#5u~HL|$8)TLvrx!wm4=eHOcQkJ{wN_U|=% zM(sPktW|wkg%>84cn$mRr%I}-1R^)7i`XsNF?_k^#fUGX93ZrDN>HH|LleVPF-P(xtEe=y=t zBA)xUgPwYW-u|Hm0hVGdNTP;q)KLSPYqnSMALTRwKjzfqa~Gp+Z^6usNZ(?<)n2<9 zj_apt)33KXOG{tH#N^bmL^7F9PA4CiHf68WsdT#SLZ$VPf8CYRuO8f2s`u(%ubeq^ zO9q`vJ@8s8pzeBbd33)XxUyG}-N0?D*pe4-9r_Rn_y}n-F@*9DCh4v$faKVR4yy8cE!AYB$!_Oge0y(}H)OFG_Br+7 z^riimm%m{A<8?Ho`&Xal=5L(&eFYb5$9Aa|_%dK+a@$W~93{qSOKI_n8rcRkDly6) zMtcXk_Tyv6;~Z1PjM6XkKxKHdGP+7(=KSQD6V=BIa4HI0&$dOL(}*{8ED#sNOBrzn zj+%8*oP_F23(CcOi}!`+80BI*~5gmR$bRC`>=rGGV%x16UAjDkG5F!f=X{-?6 zpfE;2RER3nD31#90c*DOZ3HK-9jL{IC?n^N19}MqBf57?{+sbJMW5$DjZIo5opG%YbFzP#6$X z#Zs{VsDn=}6P5Sc4z4G-II&+}TNQ##ZO38Nb{ux_hav7AxN=NBw0&*y1nJNZ0{8<} Se}~%lKj^pbe diff --git a/packages/client/next.config.js b/packages/client/next.config.js new file mode 100644 index 0000000..0246618 --- /dev/null +++ b/packages/client/next.config.js @@ -0,0 +1,10 @@ +/** @type {import('next').NextConfig} */ + +const nextConfig = { + compiler: { + styledComponents: true, + }, + reactStrictMode: true, +}; + +export default nextConfig; diff --git a/packages/client/package.json b/packages/client/package.json index 6b7dd39..c3a65da 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -21,7 +21,7 @@ "react-chartjs-2": "^5.2.0", "react-dom": "^18.2.0", "react-google-charts": "^4.0.0", - "styled-components": "^5.3.9", + "styled-components": "^6.0.2", "zustand": "^4.3.7" }, "devDependencies": { diff --git a/packages/client/pages/_document.tsx b/packages/client/pages/_document.tsx new file mode 100644 index 0000000..602ee61 --- /dev/null +++ b/packages/client/pages/_document.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import Document, { type DocumentContext } from 'next/document'; +import { ServerStyleSheet } from 'styled-components'; + +export default class MyDocument extends Document { + static async getInitialProps(ctx: DocumentContext): Promise { + const sheet = new ServerStyleSheet(); + const originalRenderPage = ctx.renderPage; + + try { + ctx.renderPage = async () => + await originalRenderPage({ + enhanceApp: (App) => (props) => sheet.collectStyles(), + }); + + const initialProps = await Document.getInitialProps(ctx); + return { + ...initialProps, + styles: [initialProps.styles, sheet.getStyleElement()], + }; + } finally { + sheet.seal(); + } + } +} diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json index 803bb3e..01c1a48 100644 --- a/packages/client/tsconfig.json +++ b/packages/client/tsconfig.json @@ -1,12 +1,18 @@ { "extends": "../../tsconfig.json", - "files": ["../server/app.ts"], + "files": [ + "../server/app.ts" + ], "compilerOptions": { "rootDir": "../", "composite": true, "target": "ESNext", "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" + ], "allowJs": false, "skipLibCheck": true, "allowSyntheticDefaultImports": true, @@ -21,14 +27,32 @@ "incremental": true, "baseUrl": ".", "paths": { - "@/*": ["./*"] - } + "@/*": [ + "./*" + ] + }, + "plugins": [ + { + "name": "next" + } + ] }, - "include": ["next-env.d.ts", "pages", "components", "screens", "lib", "./*"], + "include": [ + "next-env.d.ts", + "pages", + "components", + "screens", + "lib", + "./*", + ".next/types/**/*.ts" + ], "references": [ { "path": "./tsconfig.node.json" } ], - "exclude": ["node_modules", "../server/app.ts"] + "exclude": [ + "node_modules", + "../server/app.ts" + ] }