_app.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /*!
  2. *
  3. * Angle - Bootstrap Admin Template
  4. *
  5. * Version: 4.8
  6. * Author: @themicon_co
  7. * Website: http://themicon.co
  8. * License: https://wrapbootstrap.com/help/licenses
  9. *
  10. */
  11. // Polyfills
  12. // ======================
  13. import "../polyfills.js";
  14. // App
  15. // ======================
  16. import App from "next/app";
  17. import React from "react";
  18. // Redux support
  19. import { Provider } from "react-redux";
  20. import withReduxStore from "../store/with-redux-store";
  21. // Translation support
  22. import * as Translate from "@/components/Common/Translate";
  23. // Base Layout
  24. import Base from "@/components/Layout/Base";
  25. // import BaseHorizontal from '@/components/Layout/BaseHorizontal';
  26. // Global Vendor
  27. // ======================
  28. // Whirl
  29. import "whirl/dist/whirl.css";
  30. // Font Awesome
  31. import "@fortawesome/fontawesome-free/css/brands.css";
  32. import "@fortawesome/fontawesome-free/css/regular.css";
  33. import "@fortawesome/fontawesome-free/css/solid.css";
  34. import "@fortawesome/fontawesome-free/css/fontawesome.css";
  35. // Animate.CSS
  36. import "animate.css/animate.min.css";
  37. // Simple line icons
  38. import "simple-line-icons/css/simple-line-icons.css";
  39. // Weather Icons
  40. import "weather-icons/css/weather-icons.min.css";
  41. import "weather-icons/css/weather-icons-wind.min.css";
  42. import "@fullcalendar/core/main.css";
  43. import "@fullcalendar/daygrid/main.css";
  44. import "@fullcalendar/timegrid/main.css";
  45. import "@fullcalendar/list/main.css";
  46. import "@fullcalendar/bootstrap/main.css";
  47. import "react-datetime/css/react-datetime.css";
  48. // App Styes
  49. // ======================
  50. import "../styles/bootstrap.scss";
  51. import "../styles/app.scss";
  52. import "react-perfect-scrollbar/dist/css/styles.css";
  53. // https://nextjs.org/docs/#custom-app
  54. class MyApp extends App {
  55. static async getInitialProps({ Component, ctx }) {
  56. let pageProps = {};
  57. if (Component.getInitialProps) {
  58. pageProps = await Component.getInitialProps(ctx);
  59. }
  60. // Require the initial dictionary.
  61. // Use require to avoid 'fs' module
  62. Translate.setDict("en", require("@/public/static/locales/en/translations.json"));
  63. // The store has been updated in previous call,
  64. // pass it down as initial prop so client can use it.
  65. return { pageProps, store: Translate.store };
  66. }
  67. render() {
  68. const { Component, pageProps, reduxStore, store } = this.props;
  69. const Layout = Component.Layout ? Component.Layout : Base;
  70. const ComponentWithTranslation = Translate.withTranslation(Component);
  71. return (
  72. <Provider store={reduxStore}>
  73. <Translate.Provider store={store}>
  74. <Layout>
  75. <ComponentWithTranslation {...pageProps} />
  76. </Layout>
  77. </Translate.Provider>
  78. </Provider>
  79. );
  80. }
  81. }
  82. export default withReduxStore(MyApp);