diff --git a/config-overrides.js b/config-overrides.js index 21b9f02..482dc2b 100644 --- a/config-overrides.js +++ b/config-overrides.js @@ -2,6 +2,12 @@ module.exports = { webpack: function (config) { return { ...config, + optimization: { + splitChunks: { + maxSize: 5000000, // 5MB in static size, before compression + }, + }, + resolve: { ...config.resolve, alias: { diff --git a/package-lock.json b/package-lock.json index 6255a4d..21f750e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -126,6 +126,7 @@ "react-icons": "^4.10.1", "react-input-range": "^1.3.0", "react-intl": "^5.24.7", + "react-lazy": "^1.1.0", "react-loading-dot": "^1.0.6", "react-md-spinner": "^1.0.0", "react-meta-tags": "^1.0.1", @@ -173,6 +174,7 @@ "semantic-ui-react": "^2.1.2", "state-pool": "^0.6.0", "styled-components": "^5.3.5", + "suspend-react": "^0.1.3", "swr": "^1.2.1", "tinymce": "^7.1.2", "use-global-state": "^0.1.2", @@ -6659,6 +6661,28 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@researchgate/react-intersection-observer": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@researchgate/react-intersection-observer/-/react-intersection-observer-0.7.4.tgz", + "integrity": "sha512-4F291saKAP9I25Qe1ePflvm1DLLA43GlBIZfpMFYWofph7CAm+19nT8xwkQqSszg4PwZa5BpkaI4tAEJHtlj3w==", + "dependencies": { + "invariant": "^2.2.2", + "prop-types": "^15.6.0", + "warning": "^3.0.0" + }, + "peerDependencies": { + "react": ">=15", + "react-dom": ">=15" + } + }, + "node_modules/@researchgate/react-intersection-observer/node_modules/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/@restart/context": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", @@ -27129,6 +27153,19 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-lazy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-lazy/-/react-lazy-1.1.0.tgz", + "integrity": "sha512-p0eyneNFYnmAJsJnnYJJ/T+FJ54+7avHSs43Q2OZNHaLuNQVr1D4QQxoStC8rc4mzWzTyU/cS6kjAHn6+Rhbyw==", + "dependencies": { + "@researchgate/react-intersection-observer": "^0.7.3" + }, + "peerDependencies": { + "prop-types": "^15.6.0", + "react": ">=16.4", + "react-dom": ">=16.4" + } + }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", @@ -31704,6 +31741,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/suspend-react": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz", + "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==", + "peerDependencies": { + "react": ">=17.0" + } + }, "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", @@ -39738,6 +39783,26 @@ "@react-spring/types": "~9.7.3" } }, + "@researchgate/react-intersection-observer": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@researchgate/react-intersection-observer/-/react-intersection-observer-0.7.4.tgz", + "integrity": "sha512-4F291saKAP9I25Qe1ePflvm1DLLA43GlBIZfpMFYWofph7CAm+19nT8xwkQqSszg4PwZa5BpkaI4tAEJHtlj3w==", + "requires": { + "invariant": "^2.2.2", + "prop-types": "^15.6.0", + "warning": "^3.0.0" + }, + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, "@restart/context": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", @@ -55305,6 +55370,14 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-lazy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-lazy/-/react-lazy-1.1.0.tgz", + "integrity": "sha512-p0eyneNFYnmAJsJnnYJJ/T+FJ54+7avHSs43Q2OZNHaLuNQVr1D4QQxoStC8rc4mzWzTyU/cS6kjAHn6+Rhbyw==", + "requires": { + "@researchgate/react-intersection-observer": "^0.7.3" + } + }, "react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", @@ -58858,6 +58931,11 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, + "suspend-react": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz", + "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==" + }, "svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", diff --git a/package.json b/package.json index 953c0d7..f1508a8 100644 --- a/package.json +++ b/package.json @@ -121,6 +121,7 @@ "react-icons": "^4.10.1", "react-input-range": "^1.3.0", "react-intl": "^5.24.7", + "react-lazy": "^1.1.0", "react-loading-dot": "^1.0.6", "react-md-spinner": "^1.0.0", "react-meta-tags": "^1.0.1", @@ -168,6 +169,7 @@ "semantic-ui-react": "^2.1.2", "state-pool": "^0.6.0", "styled-components": "^5.3.5", + "suspend-react": "^0.1.3", "swr": "^1.2.1", "tinymce": "^7.1.2", "use-global-state": "^0.1.2", diff --git a/src/App.js b/src/App.js index c737cde..c1b8ef9 100644 --- a/src/App.js +++ b/src/App.js @@ -1,76 +1,63 @@ -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect, Suspense } from "react"; import { BrowserRouter, Switch, Route } from "react-router-dom" import './App.css'; -import NotFound from './pages/NotFound' -import Contact from './pages/Contact' -import Connexion from './pages/Connexion' -import Login from './pages/Login'; - -import Recherche_new_v2 from "./pages/recherche_new_v2"; -import Recherche_new_v3 from "./pages/recherche_new_v3"; -import Recherche_new_v4 from "./pages/recherche_new_v4"; - -import Mon_Catalogue_Public from "./pages/mon_catalogue_public"; - - -import TestUrl from "./pages/testurl"; -import Account from "./pages/account"; - -import DisplayDetailClass_new_v2 from "./pages/displaydetailclass_new_v2"; -import DisplayDetailClass_new_v3 from "./pages/displaydetailclass_new_v3"; - -import Display_Partner_Catalog_DetailClass_new_v2 from "./pages/display_partner_catalog_detailclass_new_v2" - -import DisplayDetailArticle from "./pages/displaydetailarticle"; -import AddArticleAvis from "./pages/addarticleavis"; -import Acceuil from "./pages/acceuil"; -import Partner from "./pages/partner"; -import CreateAccount from "./pages/createaccount"; -import PartnerLogin from "./pages/partnerlogin"; -import PartnerLogin0 from "./pages/partnerlogin0"; -import PartnerLogin1 from "./pages/partnerlogin1"; - -import RechecheArticles from "./pages/recherchearticles"; -import AddArticle from "./pages/addarticle"; -import ResetUserPwd from "./pages/resetuserpwd"; -import DeleteUserAccount from "./pages/deleteuseraccount"; - -import ContactezNous from "./pages/contactez_nous"; -import CoupDeCoeur from "./pages/coupdecoeur"; -import AccountUserActivated from "./pages/accountuseractivated"; -import ProduitsService from "./pages/produitservice"; - -import Recherche_new from "./pages/recherche_new"; -import Recherche_old from "./pages/recherche"; -import UserSignFirst from "./pages/usersigninfirst"; -import GestionAdministrative from "./components/GestionAdministrative"; -import Emargement from "./pages/emargementOk"; -import Formation_Cartouche_Com from "./pages/recherche_cartouche_com"; -import SeDesabonner from './pages/sedesabonner'; -import OrderConfirmation_3DS from "./pages/orderconfirmation_3DS"; -import Training_Inactive_Or_Not_Found from "./pages/Traning_Inactif_Or_Not_Exist"; -import TestUrl_New from "./pages/testurl_new"; -import QuiSommesNous_v3 from "./pages/quisommesnous_v3"; -import Fonctionnalites from "./pages/fonctionnalite"; -import Test_Drag_Drop from "./pages/test_drag_drop"; - -import Test_Drag_Drop2 from "./pages/test_dnd"; - -import ESign from "./pages/eSigne"; -import ESignDiplayDignedDocument from "./pages/edigndiplaydigneddocument"; -import SurveyDocument from "./pages/surveydocument"; -import UpdateAttendeeList from "./pages/updateattendeelist"; -import Emarge_QR_Code from "./pages/emarge_qr_code"; -import AutomaticQuotation from "./pages/automaticquotation"; - -import MySyIA from "./pages/iamysy"; - -import Maintenance from "./pages/maintenance_page"; - -import Subdomain_Recherche_new_v2 from "./pages/subdomain_recherche_new_v2"; function App() { + const NotFound = React.lazy(() => import('./pages/NotFound')); + const Contact = React.lazy(() => import('./pages/Contact')); + const Connexion = React.lazy(() => import('./pages/Connexion')); + const Login = React.lazy(() => import('./pages/Login')); + const Recherche_new_v2 = React.lazy(() => import('./pages/recherche_new_v2')); + const Recherche_new_v3 = React.lazy(() => import('./pages/recherche_new_v3')); + const Recherche_new_v4 = React.lazy(() => import('./pages/recherche_new_v4')); + const Mon_Catalogue_Public = React.lazy(() => import('./pages/mon_catalogue_public')); + const TestUrl = React.lazy(() => import('./pages/testurl')); + const Account = React.lazy(() => import('./pages/account')); + const DisplayDetailClass_new_v2 = React.lazy(() => import('./pages/displaydetailclass_new_v2')); + const DisplayDetailClass_new_v3 = React.lazy(() => import('./pages/displaydetailclass_new_v3')); + const Display_Partner_Catalog_DetailClass_new_v2 = React.lazy(() => import('./pages/display_partner_catalog_detailclass_new_v2')); + const DisplayDetailArticle = React.lazy(() => import('./pages/displaydetailarticle')); + const AddArticleAvis = React.lazy(() => import('./pages/addarticleavis')); + const Acceuil = React.lazy(() => import('./pages/acceuil')); + const Partner = React.lazy(() => import('./pages/partner')); + const CreateAccount = React.lazy(() => import('./pages/createaccount')); + const PartnerLogin = React.lazy(() => import('./pages/partnerlogin')); + const PartnerLogin0 = React.lazy(() => import('./pages/partnerlogin0')); + const PartnerLogin1 = React.lazy(() => import('./pages/partnerlogin1')); + const RechecheArticles = React.lazy(() => import('./pages/recherchearticles')); + const AddArticle = React.lazy(() => import('./pages/addarticle')); + const ResetUserPwd = React.lazy(() => import('./pages/resetuserpwd')); + const DeleteUserAccount = React.lazy(() => import('./pages/deleteuseraccount')); + const ContactezNous = React.lazy(() => import('./pages/contactez_nous')); + const CoupDeCoeur = React.lazy(() => import('./pages/coupdecoeur')); + const AccountUserActivated = React.lazy(() => import('./pages/accountuseractivated')); + const ProduitsService = React.lazy(() => import('./pages/produitservice')); + const Recherche_new = React.lazy(() => import('./pages/recherche_new')); + const Recherche_old = React.lazy(() => import('./pages/recherche')); + const UserSignFirst = React.lazy(() => import('./pages/usersigninfirst')); + const GestionAdministrative = React.lazy(() => import('./components/GestionAdministrative')); + const Emargement = React.lazy(() => import('./pages/emargementOk')); + const Formation_Cartouche_Com = React.lazy(() => import('./pages/recherche_cartouche_com')); + const SeDesabonner = React.lazy(() => import('./pages/sedesabonner')); + const OrderConfirmation_3DS = React.lazy(() => import('./pages/orderconfirmation_3DS')); + const Training_Inactive_Or_Not_Found = React.lazy(() => import('./pages/Traning_Inactif_Or_Not_Exist')); + const Test_Drag_Drop = React.lazy(() => import('./pages/test_drag_drop')); + const Test_Drag_Drop2 = React.lazy(() => import('./pages/test_dnd')); + const TestUrl_New = React.lazy(() => import('./pages/testurl_new')); + const QuiSommesNous_v3 = React.lazy(() => import('./pages/quisommesnous_v3')); + const Fonctionnalites = React.lazy(() => import('./pages/fonctionnalite')); + const ESign = React.lazy(() => import('./pages/eSigne')); + const ESignDiplayDignedDocument = React.lazy(() => import('./pages/edigndiplaydigneddocument')); + const SurveyDocument = React.lazy(() => import('./pages/surveydocument')); + const UpdateAttendeeList = React.lazy(() => import('./pages/updateattendeelist')); + const Emarge_QR_Code = React.lazy(() => import('./pages/emarge_qr_code')); + const AutomaticQuotation = React.lazy(() => import('./pages/automaticquotation')); + const MySyIA = React.lazy(() => import('./pages/iamysy')); + const Maintenance = React.lazy(() => import('./pages/maintenance_page')); + const Subdomain_Recherche_new_v2 = React.lazy(() => import('./pages/subdomain_recherche_new_v2')); + + const [screenSizeh, getDimension] = useState({ dynamicWidth: window.innerHeight }); @@ -115,9 +102,9 @@ function App() { if (tab_myurl_pathname.length > 0 && !tab_action.includes(tab_myurl_pathname[1]) && !tab_reserved_subdomain.includes(subdomain)) { - + var new_url = window.location.protocol + "//" + domain.split('.')[0] + "." + domain.split('.')[1] + "/moncatalog"; - + /* window.open( @@ -129,7 +116,7 @@ function App() { } - } + } }, []); @@ -145,109 +132,91 @@ function App() {