_app.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. // App Styes
  43. // ======================
  44. import "../styles/bootstrap.scss";
  45. import "../styles/app.scss";
  46. // https://nextjs.org/docs/#custom-app
  47. import "@fullcalendar/core/main.css";
  48. import "@fullcalendar/daygrid/main.css";
  49. import "@fullcalendar/timegrid/main.css";
  50. import "@fullcalendar/list/main.css";
  51. import "@fullcalendar/bootstrap/main.css";
  52. class MyApp extends App {
  53. static async getInitialProps({ Component, ctx }) {
  54. let pageProps = {};
  55. if (Component.getInitialProps) {
  56. pageProps = await Component.getInitialProps(ctx);
  57. }
  58. // Require the initial dictionary.
  59. // Use require to avoid 'fs' module
  60. Translate.setDict("en", require("@/public/static/locales/en/translations.json"));
  61. // The store has been updated in previous call,
  62. // pass it down as initial prop so client can use it.
  63. return { pageProps, store: Translate.store };
  64. }
  65. render() {
  66. const { Component, pageProps, reduxStore, store } = this.props;
  67. const Layout = Component.Layout ? Component.Layout : Base;
  68. const ComponentWithTranslation = Translate.withTranslation(Component);
  69. return (
  70. <Provider store={reduxStore}>
  71. <Translate.Provider store={store}>
  72. <Layout>
  73. <ComponentWithTranslation {...pageProps} />
  74. </Layout>
  75. </Translate.Provider>
  76. </Provider>
  77. );
  78. }
  79. }
  80. export default withReduxStore(MyApp);