@material-ui/core/styles#ServerStyleSheets TypeScript Examples
The following examples show how to use
@material-ui/core/styles#ServerStyleSheets.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: _document.tsx From BloggerWeb with GNU General Public License v3.0 | 6 votes |
MyDocument.getInitialProps = async (ctx) => {
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
styles: [
...React.Children.toArray(initialProps.styles),
sheets.getStyleElement(),
],
};
};
Example #2
Source File: _document.tsx From master-frontend-lemoncode with MIT License | 6 votes |
static async getInitialProps(ctx) {
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
const styles = extractCritical(initialProps.html);
return {
...initialProps,
styles: (
<>
{initialProps.styles}
{sheets.getStyleElement()}
<style
data-emotion-css={styles.ids.join(' ')}
dangerouslySetInnerHTML={{ __html: styles.css }}
/>
</>
),
};
}
Example #3
Source File: _document.tsx From master-frontend-lemoncode with MIT License | 6 votes |
static async getInitialProps(ctx) {
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
const styles = extractCritical(initialProps.html);
return {
...initialProps,
styles: (
<>
{initialProps.styles}
{sheets.getStyleElement()}
<style
data-emotion-css={styles.ids.join(' ')}
dangerouslySetInnerHTML={{ __html: styles.css }}
/>
</>
),
};
}
Example #4
Source File: _document.tsx From posso-uscire with GNU General Public License v3.0 | 6 votes |
static async getInitialProps(ctx) {
const materialUiSheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) =>
materialUiSheets.collect(<App {...props} />),
});
const initialProps = await NextDocument.getInitialProps(ctx);
return {
...initialProps,
styles: [
<React.Fragment key="styles">
{materialUiSheets.getStyleElement()}
{initialProps.styles}
</React.Fragment>,
],
};
}
Example #5
Source File: _document.tsx From Wern-Fullstack-Template with MIT License | 6 votes |
MyDocument.getInitialProps = async (ctx) => {
const sheets = new ServerStyleSheets()
const originalRenderPage = ctx.renderPage
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />),
})
const initialProps = await Document.getInitialProps(ctx)
return {
...initialProps,
styles: [
...React.Children.toArray(initialProps.styles),
sheets.getStyleElement(),
],
}
}
Example #6
Source File: _document.tsx From houston with MIT License | 6 votes |
CustomDocument.getInitialProps = async ctx => {
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: App => props => sheets.collect(<App {...props} />)
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
styles: [...React.Children.toArray(initialProps.styles), sheets.getStyleElement()]
};
};
Example #7
Source File: material-ui-core-v4.ts From vite-ssr with MIT License | 6 votes |
function ssrCollector(context: Context) {
const sheet = new ServerStyleSheets()
return {
collect(app: ReactElement) {
//@ts-ignore
return sheet.collect(app)
},
toString() {
let css = sheet.toString()
// @ts-ignore
if (import.meta.env.PROD) {
css = css.replace(/\s{2,}/gm, ' ')
}
return `<style id="${key}">${css}</style>`
},
}
}
Example #8
Source File: _document.tsx From xstate-catalogue with MIT License | 6 votes |
MyDocument.getInitialProps = async (ctx) => {
// Render app and page and get the context of the page with collected side effects.
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
// Styles fragment is rendered after the app and page rendering finish.
styles: [
...React.Children.toArray(initialProps.styles),
sheets.getStyleElement(),
],
};
};
Example #9
Source File: pageBuilder.tsx From react-app-architecture with Apache License 2.0 | 5 votes |
export default function pageBuilder(
req: PublicRequest,
pageinfo: PageInfo = {
title: 'AfterAcademy | React Project',
description: 'This is the sample project to learn and implement React app.',
},
currentState: Partial<RootState> = {},
): string {
// create mui server style
const sheets = new ServerStyleSheets();
const authData = req.universalCookies.get(KEY_AUTH_DATA);
if (authData?.tokens?.accessToken) {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { tokens, ...data } = authData;
currentState.authState = {
data: data, // security
isLoggingIn: false,
isLoggingOut: false,
isLoggedIn: true,
isForcedLogout: false,
isRedirectHome: false,
message: null,
};
}
const store = isDev
? configureStore(currentState)
: createStore(rootReducer, currentState, applyMiddleware(thunk));
// Render the component to a string
const html = renderToString(
sheets.collect(
<Provider store={store}>
<CookiesProvider cookies={req.universalCookies}>
<StaticRouter location={req.url} context={{}}>
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>
</StaticRouter>
</CookiesProvider>
</Provider>,
),
);
// Grab the CSS from our sheets.
const css = sheets.toString();
const baseUrl = `${getProtocol(req)}://${req.get('host')}`;
const siteUrl = baseUrl + req.originalUrl;
const { coverImg, title, description } = pageinfo;
let htmlPage = render({
html: html,
css: css,
preloadedState: store.getState(),
siteUrl: siteUrl,
title: title,
coverImg: coverImg ? coverImg : `${baseUrl}/assets/og-cover-image.jpg`,
description: description,
});
try {
htmlPage = minifyHtml(htmlPage, {
minifyCSS: true,
minifyJS: true,
});
} catch (e) {
console.log(e);
}
return htmlPage;
}
Example #10
Source File: _document.tsx From youtube-2020-june-material-ui-themes with MIT License | 5 votes |
// `getInitialProps` belongs to `_document` (instead of `_app`),
// it's compatible with server-side generation (SSG).
MyDocument.getInitialProps = async (ctx) => {
// Resolution order
//
// On the server:
// 1. app.getInitialProps
// 2. page.getInitialProps
// 3. document.getInitialProps
// 4. app.render
// 5. page.render
// 6. document.render
//
// On the server with error:
// 1. document.getInitialProps
// 2. app.render
// 3. page.render
// 4. document.render
//
// On the client
// 1. app.getInitialProps
// 2. page.getInitialProps
// 3. app.render
// 4. page.render
// Render app and page and get the context of the page with collected side effects.
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
// Styles fragment is rendered after the app and page rendering finish.
styles: [...React.Children.toArray(initialProps.styles), sheets.getStyleElement()],
};
};
Example #11
Source File: _document.tsx From log4brains with Apache License 2.0 | 5 votes |
// `getInitialProps` belongs to `_document` (instead of `_app`),
// it's compatible with server-side generation (SSG).
MyDocument.getInitialProps = async (ctx) => {
// Resolution order
//
// On the server:
// 1. app.getInitialProps
// 2. page.getInitialProps
// 3. document.getInitialProps
// 4. app.render
// 5. page.render
// 6. document.render
//
// On the server with error:
// 1. document.getInitialProps
// 2. app.render
// 3. page.render
// 4. document.render
//
// On the client
// 1. app.getInitialProps
// 2. page.getInitialProps
// 3. app.render
// 4. page.render
// Render app and page and get the context of the page with collected side effects.
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />)
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
// Styles fragment is rendered after the app and page rendering finish.
styles: [
...React.Children.toArray(initialProps.styles),
sheets.getStyleElement()
]
};
};
Example #12
Source File: _document.tsx From knests with MIT License | 5 votes |
MyDocument.getInitialProps = async (ctx) => {
// Resolution order
//
// On the server:
// 1. app.getInitialProps
// 2. page.getInitialProps
// 3. document.getInitialProps
// 4. app.render
// 5. page.render
// 6. document.render
//
// On the server with error:
// 1. document.getInitialProps
// 2. app.render
// 3. page.render
// 4. document.render
//
// On the client
// 1. app.getInitialProps
// 2. page.getInitialProps
// 3. app.render
// 4. page.render
// Render app and page and get the context of the page with collected side effects.
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) => sheets.collect(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
// Styles fragment is rendered after the app and page rendering finish.
styles: [...React.Children.toArray(initialProps.styles), sheets.getStyleElement()],
};
};