@mwap

Custom App

MWAP uses the App component to wrap your root pages. You can override it by creating either an app.tsx, app.ts, app.js, or app.jsx.

Overriding the App allows you to do things like:

  • Add global styles
  • Render an app shell
  • Provide global state
  • And even useLoader

A custom app.tsx might look something like:

import * as React from "react";
import { Suspense } from "react";
import { Helmet } from "react-helmet-async";
import { ScrollToTop } from "mwap";
import Header from "./components/header";
import "./styles/global.css";
const App = ({ children }) => {
return (
<>
<ScrollToTop />
<Helmet
htmlAttributes={{ lang: "en" }}
defaultTitle="@mwap docs"
titleTemplate="%s | @mwap docs"
>
<meta
name="description"
content="An example demonstrating tailwindcss within the @mwap framework."
/>
<meta charSet="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="apple-touch-icon"
sizes="180x180"
href="/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/favicon-16x16.png"
/>
<link rel="manifest" href="/site.webmanifest" />
</Helmet>
<Header />
{/* Provide a global page loading state through the fallback ;) */}
<Suspense fallback={""}>{children}</Suspense>
</>
);
};
export default App;

Related

For more information on what to do next, we recommend the following sections: