app.page.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import type { GetServerSideProps } from 'next';
  2. import dynamic from 'next/dynamic';
  3. import type { NextPageWithLayout } from '../_app.page';
  4. import type { AdminCommonProps } from './_shared';
  5. import {
  6. createAdminPageLayout,
  7. getServerSideAdminCommonProps,
  8. } from './_shared';
  9. const AppSettingsPageContents = dynamic(
  10. () => import('~/client/components/Admin/App/AppSettingsPageContents'),
  11. { ssr: false },
  12. );
  13. type Props = AdminCommonProps;
  14. const AdminAppPage: NextPageWithLayout<Props> = () => (
  15. <AppSettingsPageContents />
  16. );
  17. AdminAppPage.getLayout = createAdminPageLayout<Props>({
  18. title: (_p, t) => t('headers.app_settings', { ns: 'commons' }),
  19. containerFactories: [
  20. async () => {
  21. const AdminAppContainer = (
  22. await import('~/client/services/AdminAppContainer')
  23. ).default;
  24. return new AdminAppContainer();
  25. },
  26. ],
  27. });
  28. export const getServerSideProps: GetServerSideProps = async (context) => {
  29. return getServerSideAdminCommonProps(context, { preloadAllLang: true });
  30. };
  31. export default AdminAppPage;