Merge branch 'master' into develop
# Conflicts: # packages/client/src/routes/client.js # packages/client/src/routes/confirm.js # packages/client/src/routes/general.js # packages/client/src/routes/portalSettings.js # packages/common/package.json # packages/components/scrollbar/styled-scrollbar.js # packages/editor/package.json # packages/shared/package.json # packages/shared/utils/component-loader.ts
This commit is contained in:
commit
77b5986876
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "docspace",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"private": true,
|
||||
"workspaces": {
|
||||
"packages": [
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@docspace/client",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"private": true,
|
||||
"homepage": "",
|
||||
"scripts": {
|
||||
|
@ -5,7 +5,7 @@ import loadable from "@loadable/component";
|
||||
import PrivateRoute from "../components/PrivateRouteWrapper";
|
||||
import PublicRoute from "../components/PublicRouteWrapper";
|
||||
import Error404 from "@docspace/shared/components/errors/Error404";
|
||||
|
||||
import componentLoader from "@docspace/shared/utils/component-loader";
|
||||
import ErrorBoundary from "../components/ErrorBoundaryWrapper";
|
||||
|
||||
import FilesView from "SRC_DIR/pages/Home/View/Files";
|
||||
@ -14,41 +14,52 @@ import SettingsView from "SRC_DIR/pages/Home/View/Settings";
|
||||
|
||||
import { generalRoutes } from "./general";
|
||||
|
||||
const Client = loadable(() => import("../Client"));
|
||||
const Client = loadable(() => componentLoader(() => import("../Client")));
|
||||
|
||||
const Home = loadable(() => import("../pages/Home"));
|
||||
const Home = loadable(() => componentLoader(() => import("../pages/Home")));
|
||||
|
||||
const Sdk = loadable(() => import("../pages/Sdk"));
|
||||
const Sdk = loadable(() => componentLoader(() => import("../pages/Sdk")));
|
||||
|
||||
const FormGallery = loadable(() => import("../pages/FormGallery"));
|
||||
const PublicRoom = loadable(() => import("../pages/PublicRoom"));
|
||||
const About = loadable(() => import("../pages/About"));
|
||||
const Wizard = loadable(() => import("../pages/Wizard"));
|
||||
const PreparationPortal = loadable(() => import("../pages/PreparationPortal"));
|
||||
const PortalUnavailable = loadable(() => import("../pages/PortalUnavailable"));
|
||||
const ErrorUnavailable = loadable(
|
||||
() => import("../components/ErrorUnavailableWrapper"),
|
||||
const FormGallery = loadable(() =>
|
||||
componentLoader(() => import("../pages/FormGallery")),
|
||||
);
|
||||
const AccessRestricted = loadable(
|
||||
() => import("@docspace/shared/components/errors/AccessRestricted"),
|
||||
const PublicRoom = loadable(() =>
|
||||
componentLoader(() => import("../pages/PublicRoom")),
|
||||
);
|
||||
const About = loadable(() => componentLoader(() => import("../pages/About")));
|
||||
const Wizard = loadable(() => componentLoader(() => import("../pages/Wizard")));
|
||||
const PreparationPortal = loadable(() =>
|
||||
componentLoader(() => import("../pages/PreparationPortal")),
|
||||
);
|
||||
const PortalUnavailable = loadable(() =>
|
||||
componentLoader(() => import("../pages/PortalUnavailable")),
|
||||
);
|
||||
const ErrorUnavailable = loadable(() =>
|
||||
componentLoader(() => import("../components/ErrorUnavailableWrapper")),
|
||||
);
|
||||
|
||||
const Error401 = loadable(
|
||||
() => import("@docspace/shared/components/errors/Error401"),
|
||||
const Error401 = loadable(() =>
|
||||
componentLoader(() => import("@docspace/shared/components/errors/Error401")),
|
||||
);
|
||||
|
||||
const Error403 = loadable(
|
||||
() => import("@docspace/shared/components/errors/Error403"),
|
||||
const Error403 = loadable(() =>
|
||||
componentLoader(() => import("@docspace/shared/components/errors/Error403")),
|
||||
);
|
||||
|
||||
const Error520 = loadable(() => import("../components/Error520Wrapper"));
|
||||
|
||||
const ErrorAccessRestricted = loadable(
|
||||
() => import("@docspace/shared/components/errors/AccessRestricted"),
|
||||
const Error520 = loadable(() =>
|
||||
componentLoader(() => import("../components/Error520Wrapper")),
|
||||
);
|
||||
|
||||
const ErrorOffline = loadable(
|
||||
() => import("@docspace/shared/components/errors/ErrorOffline"),
|
||||
const ErrorAccessRestricted = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("@docspace/shared/components/errors/AccessRestricted"),
|
||||
),
|
||||
);
|
||||
|
||||
const ErrorOffline = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("@docspace/shared/components/errors/ErrorOffline"),
|
||||
),
|
||||
);
|
||||
|
||||
const ClientRoutes = [
|
||||
@ -413,7 +424,7 @@ const ClientRoutes = [
|
||||
element: (
|
||||
<PublicRoute>
|
||||
<ErrorBoundary>
|
||||
<AccessRestricted />
|
||||
<ErrorAccessRestricted />
|
||||
</ErrorBoundary>
|
||||
</PublicRoute>
|
||||
),
|
||||
|
@ -3,52 +3,69 @@ import loadable from "@loadable/component";
|
||||
|
||||
import ConfirmRoute from "../helpers/confirmRoute";
|
||||
import ErrorBoundary from "../components/ErrorBoundaryWrapper";
|
||||
import componentLoader from "@docspace/shared/utils/component-loader";
|
||||
|
||||
import Error404 from "@docspace/shared/components/errors/Error404";
|
||||
import { AuthenticatedAction } from "../helpers/enums";
|
||||
|
||||
const Confirm = loadable(() => import("../pages/Confirm"));
|
||||
const Confirm = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm")),
|
||||
);
|
||||
|
||||
const ActivateUserForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/activateUser")
|
||||
const ActivateUserForm = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/activateUser")),
|
||||
);
|
||||
const CreateUserForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/createUser")
|
||||
const CreateUserForm = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/createUser")),
|
||||
);
|
||||
const ChangePasswordForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/changePassword")
|
||||
const ChangePasswordForm = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/Confirm/sub-components/changePassword"),
|
||||
),
|
||||
);
|
||||
const ActivateEmailForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/activateEmail")
|
||||
const ActivateEmailForm = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/Confirm/sub-components/activateEmail"),
|
||||
),
|
||||
);
|
||||
const ChangeEmailForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/changeEmail")
|
||||
const ChangeEmailForm = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/changeEmail")),
|
||||
);
|
||||
const ChangePhoneForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/changePhone")
|
||||
const ChangePhoneForm = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/changePhone")),
|
||||
);
|
||||
const ProfileRemoveForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/profileRemove")
|
||||
const ProfileRemoveForm = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/Confirm/sub-components/profileRemove"),
|
||||
),
|
||||
);
|
||||
const ChangeOwnerForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/changeOwner")
|
||||
const ChangeOwnerForm = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/changeOwner")),
|
||||
);
|
||||
const TfaAuthForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/tfaAuth")
|
||||
const TfaAuthForm = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/tfaAuth")),
|
||||
);
|
||||
const TfaActivationForm = loadable(
|
||||
() => import("../pages/Confirm/sub-components/tfaActivation")
|
||||
const TfaActivationForm = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/Confirm/sub-components/tfaActivation"),
|
||||
),
|
||||
);
|
||||
const RemovePortal = loadable(
|
||||
() => import("../pages/Confirm/sub-components/removePortal")
|
||||
const RemovePortal = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/removePortal")),
|
||||
);
|
||||
const DeactivatePortal = loadable(
|
||||
() => import("../pages/Confirm/sub-components/deactivatePortal")
|
||||
const DeactivatePortal = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/Confirm/sub-components/deactivatePortal"),
|
||||
),
|
||||
);
|
||||
const ContinuePortal = loadable(
|
||||
() => import("../pages/Confirm/sub-components/continuePortal")
|
||||
const ContinuePortal = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/Confirm/sub-components/continuePortal"),
|
||||
),
|
||||
);
|
||||
const Auth = loadable(() =>
|
||||
componentLoader(() => import("../pages/Confirm/sub-components/auth")),
|
||||
);
|
||||
const Auth = loadable(() => import("../pages/Confirm/sub-components/auth"));
|
||||
|
||||
const confirmRoutes = [
|
||||
{
|
||||
|
@ -1,11 +1,13 @@
|
||||
import React from "react";
|
||||
import { Navigate } from "react-router-dom";
|
||||
|
||||
import loadable from "@loadable/component";
|
||||
|
||||
import PrivateRoute from "../components/PrivateRouteWrapper";
|
||||
import componentLoader from "@docspace/shared/utils/component-loader";
|
||||
|
||||
const Profile = loadable(() => import("../pages/Profile"));
|
||||
const Profile = loadable(() =>
|
||||
componentLoader(() => import("../pages/Profile")),
|
||||
);
|
||||
|
||||
const generalRoutes = [
|
||||
{
|
||||
|
@ -4,174 +4,242 @@ import loadable from "@loadable/component";
|
||||
|
||||
import PrivateRoute from "../components/PrivateRouteWrapper";
|
||||
import ErrorBoundary from "../components/ErrorBoundaryWrapper";
|
||||
import componentLoader from "@docspace/shared/utils/component-loader";
|
||||
|
||||
import Error404 from "@docspace/shared/components/errors/Error404";
|
||||
|
||||
import { generalRoutes } from "./general";
|
||||
|
||||
const PortalSettings = loadable(() => import("../pages/PortalSettings"));
|
||||
|
||||
const CustomizationSettings = loadable(
|
||||
() => import("../pages/PortalSettings/categories/common/index.js"),
|
||||
);
|
||||
const LanguageAndTimeZoneSettings = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/language-and-time-zone"
|
||||
),
|
||||
);
|
||||
const WelcomePageSettings = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/welcome-page-settings"
|
||||
),
|
||||
);
|
||||
const DNSSettings = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/dns-settings"
|
||||
),
|
||||
);
|
||||
const PortalRenaming = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/portal-renaming"
|
||||
),
|
||||
);
|
||||
const WhiteLabel = loadable(
|
||||
() => import("../pages/PortalSettings/categories/common/Branding/whitelabel"),
|
||||
);
|
||||
const CompanyInfoSettings = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Branding/companyInfoSettings"
|
||||
),
|
||||
);
|
||||
const AdditionalResources = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Branding/additionalResources"
|
||||
),
|
||||
);
|
||||
const SecuritySettings = loadable(
|
||||
() => import("../pages/PortalSettings/categories/security/index.js"),
|
||||
);
|
||||
const TfaPage = loadable(
|
||||
() => import("../pages/PortalSettings/categories/security/access-portal/tfa"),
|
||||
);
|
||||
const PasswordStrengthPage = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/passwordStrength"
|
||||
),
|
||||
);
|
||||
const TrustedMailPage = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/trustedMail"
|
||||
),
|
||||
);
|
||||
const IpSecurityPage = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/ipSecurity"
|
||||
),
|
||||
);
|
||||
const BruteForceProtectionPage = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/bruteForceProtection"
|
||||
),
|
||||
);
|
||||
const AdminMessagePage = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/adminMessage"
|
||||
),
|
||||
);
|
||||
const SessionLifetimePage = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/sessionLifetime"
|
||||
),
|
||||
);
|
||||
const Integration = loadable(
|
||||
() => import("../pages/PortalSettings/categories/integration"),
|
||||
);
|
||||
const Payments = loadable(
|
||||
() => import("../pages/PortalSettings/categories/payments"),
|
||||
);
|
||||
const Statistics = loadable(
|
||||
() => import("../pages/PortalSettings/categories/storage-management"),
|
||||
);
|
||||
const QuotaPerRoom = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/storage-management/sub-components/QuotaPerRoom.js"
|
||||
),
|
||||
);
|
||||
const QuotaPerUser = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/storage-management/sub-components/QuotaPerUser.js"
|
||||
),
|
||||
);
|
||||
const ThirdParty = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/integration/ThirdPartyServicesSettings"
|
||||
),
|
||||
const PortalSettings = loadable(() =>
|
||||
componentLoader(() => import("../pages/PortalSettings")),
|
||||
);
|
||||
|
||||
const DocumentService = loadable(
|
||||
() =>
|
||||
import("../pages/PortalSettings/categories/integration/DocumentService"),
|
||||
const Statistics = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/PortalSettings/categories/storage-management"),
|
||||
),
|
||||
);
|
||||
const QuotaPerRoom = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/storage-management/sub-components/QuotaPerRoom.js"
|
||||
),
|
||||
),
|
||||
);
|
||||
const QuotaPerUser = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/storage-management/sub-components/QuotaPerUser.js"
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
const SingleSignOn = loadable(
|
||||
() => import("../pages/PortalSettings/categories/integration/SingleSignOn"),
|
||||
const CustomizationSettings = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/PortalSettings/categories/common/index.js"),
|
||||
),
|
||||
);
|
||||
const SPSettings = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/integration/SingleSignOn/SPSettings"
|
||||
),
|
||||
const LanguageAndTimeZoneSettings = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/language-and-time-zone"
|
||||
),
|
||||
),
|
||||
);
|
||||
const SPMetadata = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/integration/SingleSignOn/ProviderMetadata"
|
||||
),
|
||||
const WelcomePageSettings = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/welcome-page-settings"
|
||||
),
|
||||
),
|
||||
);
|
||||
const DNSSettings = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/dns-settings"
|
||||
),
|
||||
),
|
||||
);
|
||||
const PortalRenaming = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Customization/portal-renaming"
|
||||
),
|
||||
),
|
||||
);
|
||||
const WhiteLabel = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import("../pages/PortalSettings/categories/common/Branding/whitelabel"),
|
||||
),
|
||||
);
|
||||
const CompanyInfoSettings = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Branding/companyInfoSettings"
|
||||
),
|
||||
),
|
||||
);
|
||||
const AdditionalResources = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/common/Branding/additionalResources"
|
||||
),
|
||||
),
|
||||
);
|
||||
const SecuritySettings = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/PortalSettings/categories/security/index.js"),
|
||||
),
|
||||
);
|
||||
const TfaPage = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import("../pages/PortalSettings/categories/security/access-portal/tfa"),
|
||||
),
|
||||
);
|
||||
const PasswordStrengthPage = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/passwordStrength"
|
||||
),
|
||||
),
|
||||
);
|
||||
const TrustedMailPage = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/trustedMail"
|
||||
),
|
||||
),
|
||||
);
|
||||
const IpSecurityPage = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/ipSecurity"
|
||||
),
|
||||
),
|
||||
);
|
||||
const BruteForceProtectionPage = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/bruteForceProtection"
|
||||
),
|
||||
),
|
||||
);
|
||||
const AdminMessagePage = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/adminMessage"
|
||||
),
|
||||
),
|
||||
);
|
||||
const SessionLifetimePage = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/security/access-portal/sessionLifetime"
|
||||
),
|
||||
),
|
||||
);
|
||||
const Integration = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/PortalSettings/categories/integration"),
|
||||
),
|
||||
);
|
||||
const Payments = loadable(() =>
|
||||
componentLoader(() => import("../pages/PortalSettings/categories/payments")),
|
||||
);
|
||||
// const ThirdParty = loadable(() =>
|
||||
// componentLoader(
|
||||
// () =>
|
||||
// import(
|
||||
// "../pages/PortalSettings/categories/integration/ThirdPartyServicesSettings"
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
|
||||
// const DocumentService = loadable(() =>
|
||||
// componentLoader(
|
||||
// () =>
|
||||
// import("../pages/PortalSettings/categories/integration/DocumentService"),
|
||||
// ),
|
||||
// );
|
||||
|
||||
// const SingleSignOn = loadable(() =>
|
||||
// componentLoader(
|
||||
// () => import("../pages/PortalSettings/categories/integration/SingleSignOn"),
|
||||
// ),
|
||||
// );
|
||||
const SPSettings = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/integration/SingleSignOn/SPSettings"
|
||||
),
|
||||
),
|
||||
);
|
||||
const SPMetadata = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/integration/SingleSignOn/ProviderMetadata"
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
const DeveloperTools = loadable(
|
||||
() => import("../pages/PortalSettings/categories/developer-tools/index.js"),
|
||||
const DeveloperTools = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/PortalSettings/categories/developer-tools/index.js"),
|
||||
),
|
||||
);
|
||||
const WebhookHistory = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookHistory"
|
||||
),
|
||||
const WebhookHistory = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookHistory"
|
||||
),
|
||||
),
|
||||
);
|
||||
const WebhookDetails = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookEventDetails"
|
||||
),
|
||||
const WebhookDetails = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookEventDetails"
|
||||
),
|
||||
),
|
||||
);
|
||||
const Backup = loadable(
|
||||
() => import("../pages/PortalSettings/categories/data-management/index"),
|
||||
const Backup = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/PortalSettings/categories/data-management/index"),
|
||||
),
|
||||
);
|
||||
const DeleteDataPage = loadable(
|
||||
() => import("../pages/PortalSettings/categories/delete-data"),
|
||||
const DeleteDataPage = loadable(() =>
|
||||
componentLoader(
|
||||
() => import("../pages/PortalSettings/categories/delete-data"),
|
||||
),
|
||||
);
|
||||
const RestoreBackup = loadable(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/data-management/backup/restore-backup/index"
|
||||
),
|
||||
const RestoreBackup = loadable(() =>
|
||||
componentLoader(
|
||||
() =>
|
||||
import(
|
||||
"../pages/PortalSettings/categories/data-management/backup/restore-backup/index"
|
||||
),
|
||||
),
|
||||
);
|
||||
const Bonus = loadable(() => import("../pages/Bonus"));
|
||||
const Bonus = loadable(() => componentLoader(() => import("../pages/Bonus")));
|
||||
|
||||
const SimpleRoom = loadable(
|
||||
() =>
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@docspace/login",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"private": true,
|
||||
"homepage": "/login",
|
||||
"scripts": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@docspace/shared",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "echo 'skip it'",
|
||||
@ -175,3 +175,4 @@
|
||||
"react-dom": "^18.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
|
22
packages/shared/utils/component-loader.ts
Normal file
22
packages/shared/utils/component-loader.ts
Normal file
@ -0,0 +1,22 @@
|
||||
export default function componentLoader(
|
||||
lazyComponent: Function,
|
||||
attemptsLeft: number = 3
|
||||
) {
|
||||
return new Promise((resolve, reject) => {
|
||||
lazyComponent()
|
||||
.then(resolve)
|
||||
.catch((error: unknown) => {
|
||||
// let us retry after 1500 ms
|
||||
setTimeout(() => {
|
||||
if (attemptsLeft === 1) {
|
||||
reject(error);
|
||||
return;
|
||||
}
|
||||
componentLoader(lazyComponent, attemptsLeft - 1).then(
|
||||
resolve,
|
||||
reject
|
||||
);
|
||||
}, 1500);
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user