_app.tsx 968 B

12345678910111213141516171819202122232425262728293031323334
  1. // All these imports are almost exclusively for the Admin.
  2. // We should not be loading them for the main frontend UI.
  3. // order matters!
  4. import '../styles/variables.css';
  5. import '../styles/global.less';
  6. import '../styles/globals.scss';
  7. import '../styles/ant-overrides.scss';
  8. // TODO: Move this videojs sass to the player component.
  9. import '../components/video/VideoJS/VideoJS.scss';
  10. import { AppProps } from 'next/app';
  11. import { ReactElement, ReactNode } from 'react';
  12. import { NextPage } from 'next';
  13. import { RecoilRoot } from 'recoil';
  14. export type NextPageWithLayout<P = {}, IP = P> = NextPage<P, IP> & {
  15. getLayout?: (page: ReactElement) => ReactNode;
  16. };
  17. type AppPropsWithLayout = AppProps & {
  18. Component: NextPageWithLayout;
  19. };
  20. export default function App({ Component, pageProps }: AppPropsWithLayout) {
  21. const layout = Component.getLayout ?? (page => page);
  22. return layout(
  23. <RecoilRoot>
  24. <Component {...pageProps} />
  25. </RecoilRoot>,
  26. );
  27. }