Advertisement
Guest User

Untitled

a guest
Mar 26th, 2021
752
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const StyleProvider = (props) => {
  2.   return (
  3.     <StyleSheetManager sheet={props.sheetInstance}>
  4.       <ThemeProvider theme={THEME}>{props.children}</ThemeProvider>
  5.     </StyleSheetManager>
  6.   );
  7. };
  8.  
  9. function SomePage({ ssrStyles }) => {
  10.  return (
  11.     <>
  12.       <Head>
  13.         <style
  14.           dangerouslySetInnerHTML={{
  15.             __html: ssrStyles,
  16.           }}
  17.         />
  18.       </Head>
  19.       // other stuff
  20.     </>
  21.   );
  22. }
  23.  
  24. export async function getServerSideProps({ req, params }) {
  25.  
  26.   const contentUrl = path.join(
  27.     process.cwd(),
  28.     `/content/page.mdx`
  29.   );
  30.  
  31.   const source = await readFilePromise(contentUrl);
  32.  
  33.   const { content: markdown, data: frontmatter } = matter(source);
  34.  
  35.   let rawContent = '';
  36.  
  37.   const sheet = new ServerStyleSheet();
  38.  
  39.   rawContent = await renderToString(markdown, {
  40.     components: COMPONENTS,
  41.     provider: {
  42.       component: StyleProvider,
  43.       props: {
  44.         sheetInstance: sheet.instance,
  45.       },
  46.     },
  47.   })
  48.  
  49.   return {
  50.     props: {
  51.       rawContent,
  52.       frontmatter,
  53.       ssrStyles: sheet.instance.toString(),
  54.     },
  55.   };
  56. }
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement