diff --git a/packages/client/src/pages/PortalSettings/categories/common/branding.js b/packages/client/src/pages/PortalSettings/categories/common/branding.js
index b593d32fb3..dddffd788c 100644
--- a/packages/client/src/pages/PortalSettings/categories/common/branding.js
+++ b/packages/client/src/pages/PortalSettings/categories/common/branding.js
@@ -16,7 +16,7 @@ import MobileView from "./Branding/MobileView";
import { UnavailableStyles } from "../../utils/commonSettingsStyles";
import { resetSessionStorage } from "../../utils";
-import { useIsMobileView } from "../../utils/useIsMobileView";
+import { DeviceType } from "@docspace/shared/enums";
const StyledComponent = styled.div`
max-width: 700px;
@@ -60,8 +60,9 @@ const Branding = ({
isLoadedCompanyInfoSettingsData,
isSettingPaid,
standalone,
+ currentDeviceType
}) => {
- const isMobileView = useIsMobileView();
+ const isMobileView = currentDeviceType === DeviceType.mobile;
useEffect(() => {
setDocumentTitle(t("Branding"));
@@ -104,11 +105,12 @@ const Branding = ({
export default inject(({ settingsStore, currentQuotaStore, common }) => {
const { isBrandingAndCustomizationAvailable } = currentQuotaStore;
const { isLoadedCompanyInfoSettingsData } = common;
- const { standalone } = settingsStore;
+ const { standalone, currentDeviceType } = settingsStore;
return {
isLoadedCompanyInfoSettingsData,
isSettingPaid: isBrandingAndCustomizationAvailable,
standalone,
+ currentDeviceType
};
})(withLoading(withTranslation(["Settings", "Common"])(observer(Branding))));
diff --git a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/IdpSettings.js b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/IdpSettings.js
index bf3d068ee6..7efb7b131f 100644
--- a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/IdpSettings.js
+++ b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/IdpSettings.js
@@ -15,7 +15,6 @@ import {
sloBindingOptions,
nameIdOptions,
} from "./sub-components/constants";
-import { useIsMobileView } from "../../../utils/useIsMobileView";
import { DeviceType } from "@docspace/shared/enums";
const PROVIDER_URL = "https://idpservice/idp";
diff --git a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/ProviderMetadata.js b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/ProviderMetadata.js
index eaf40e16ea..1a41fe6852 100644
--- a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/ProviderMetadata.js
+++ b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/ProviderMetadata.js
@@ -8,9 +8,9 @@ import { Text } from "@docspace/shared/components/text";
import { Button } from "@docspace/shared/components/button";
import { mobile, size } from "@docspace/shared/utils";
+import { DeviceType } from "@docspace/shared/enums";
import MetadataUrlField from "./sub-components/MetadataUrlField";
-import { useIsMobileView } from "../../../utils/useIsMobileView";
const StyledWrapper = styled.div`
.button-wrapper {
@@ -30,11 +30,11 @@ const StyledWrapper = styled.div`
const ProviderMetadata = (props) => {
const { t } = useTranslation("SingleSignOn");
- const isMobileView = useIsMobileView();
const navigate = useNavigate();
const location = useLocation();
+ const { downloadMetadata, currentDeviceType } = props;
- const { downloadMetadata } = props;
+ const isMobileView = currentDeviceType === DeviceType.mobile;
const url = window.location.origin;
@@ -95,10 +95,12 @@ const ProviderMetadata = (props) => {
);
};
-export default inject(({ ssoStore }) => {
+export default inject(({ ssoStore, settingsStore }) => {
const { downloadMetadata } = ssoStore;
+ const { currentDeviceType } = settingsStore;
return {
downloadMetadata,
+ currentDeviceType
};
})(observer(ProviderMetadata));
diff --git a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/SubmitButton.js b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/SubmitButton.js
index 38a6f8144d..38de8befec 100644
--- a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/SubmitButton.js
+++ b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/SubmitButton.js
@@ -18,6 +18,7 @@ const SubmitResetButtons = (props) => {
hasErrors,
hasChanges,
isLoadingXml,
+ enableSso,
} = props;
return (
@@ -32,7 +33,9 @@ const SubmitResetButtons = (props) => {
displaySettings={true}
hasScroll={true}
isSaving={isSubmitLoading}
- saveButtonDisabled={hasErrors || !hasChanges || isLoadingXml}
+ saveButtonDisabled={
+ !enableSso || hasErrors || !hasChanges || isLoadingXml
+ }
cancelEnable={!(isSubmitLoading || isLoadingXml)}
additionalClassSaveButton="save-button"
additionalClassCancelButton="restore-button"
@@ -53,6 +56,7 @@ export default inject(({ ssoStore }) => {
hasErrors,
hasChanges,
isLoadingXml,
+ enableSso,
} = ssoStore;
return {
@@ -65,5 +69,6 @@ export default inject(({ ssoStore }) => {
hasErrors,
hasChanges,
isLoadingXml,
+ enableSso,
};
})(observer(SubmitResetButtons));
diff --git a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/index.js b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/index.js
index f151f391f5..cd7fe0fcd9 100644
--- a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/index.js
+++ b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/index.js
@@ -13,7 +13,6 @@ import ToggleSSO from "./sub-components/ToggleSSO";
import SSOLoader from "./sub-components/ssoLoader";
import MobileView from "./MobileView";
-import { useIsMobileView } from "../../../utils/useIsMobileView";
import { DeviceType } from "@docspace/shared/enums";
const SERVICE_PROVIDER_SETTINGS = "serviceProviderSettings";
diff --git a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/sub-components/DisableSsoConfirmationModal.js b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/sub-components/DisableSsoConfirmationModal.js
deleted file mode 100644
index 9df14deeab..0000000000
--- a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/sub-components/DisableSsoConfirmationModal.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import React from "react";
-import { inject, observer } from "mobx-react";
-import { useTranslation } from "react-i18next";
-
-import { Box } from "@docspace/shared/components/box";
-import { Button } from "@docspace/shared/components/button";
-import { ModalDialog } from "@docspace/shared/components/modal-dialog";
-import { Text } from "@docspace/shared/components/text";
-
-import StyledModalDialog from "../styled-containers/StyledModalDialog";
-
-const DisableSsoConfirmationModal = (props) => {
- const { t } = useTranslation(["SingleSignOn", "Common"]);
- const {
- closeConfirmationDisableModal,
- confirmationDisableModal,
- confirmDisable,
- } = props;
-
- return (
-
- {t("Common:Confirmation")}
-
-
- {t("ConfirmationText")}
-
-
-
-
-
-
-
- );
-};
-
-export default inject(({ ssoStore }) => {
- const {
- closeConfirmationDisableModal,
- confirmationDisableModal,
- confirmDisable,
- } = ssoStore;
-
- return {
- closeConfirmationDisableModal,
- confirmationDisableModal,
- confirmDisable,
- };
-})(observer(DisableSsoConfirmationModal));
diff --git a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/sub-components/ToggleSSO.js b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/sub-components/ToggleSSO.js
index ec55227b6e..e19925da9c 100644
--- a/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/sub-components/ToggleSSO.js
+++ b/packages/client/src/pages/PortalSettings/categories/integration/SingleSignOn/sub-components/ToggleSSO.js
@@ -6,21 +6,11 @@ import { Box } from "@docspace/shared/components/box";
import { Text } from "@docspace/shared/components/text";
import { ToggleButton } from "@docspace/shared/components/toggle-button";
import { Badge } from "@docspace/shared/components/badge";
-import DisableSsoConfirmationModal from "./DisableSsoConfirmationModal";
const borderProp = { radius: "6px" };
const ToggleSSO = (props) => {
- const {
- theme,
- enableSso,
- isSsoEnabled,
- openConfirmationDisableModal,
- ssoToggle,
- confirmationDisableModal,
- isSSOAvailable,
- t,
- } = props;
+ const { theme, enableSso, ssoToggle, isSSOAvailable, t } = props;
return (
<>
@@ -40,9 +30,7 @@ const ToggleSSO = (props) => {
ssoToggle(t)}
isDisabled={!isSSOAvailable}
/>
@@ -77,28 +65,17 @@ const ToggleSSO = (props) => {
-
- {confirmationDisableModal && }
>
);
};
export default inject(({ settingsStore, ssoStore }) => {
const { theme } = settingsStore;
- const {
- enableSso,
- isSsoEnabled,
- openConfirmationDisableModal,
- ssoToggle,
- confirmationDisableModal,
- } = ssoStore;
+ const { enableSso, ssoToggle } = ssoStore;
return {
theme,
enableSso,
- isSsoEnabled,
- openConfirmationDisableModal,
ssoToggle,
- confirmationDisableModal,
};
})(withTranslation(["SingleSignOn"])(observer(ToggleSSO)));
diff --git a/packages/client/src/pages/PortalSettings/utils/useIsMobileView.js b/packages/client/src/pages/PortalSettings/utils/useIsMobileView.js
deleted file mode 100644
index 03fd118dd0..0000000000
--- a/packages/client/src/pages/PortalSettings/utils/useIsMobileView.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { useState, useLayoutEffect } from "react";
-import { size } from "@docspace/shared/utils";
-
-export const useIsMobileView = () => {
- const [isMobileView, setIsMobileView] = useState(false);
-
- const onCheckView = () => {
- window.innerWidth <= size.mobile
- ? setIsMobileView(true)
- : setIsMobileView(false);
- };
-
- useLayoutEffect(() => {
- onCheckView();
-
- window.addEventListener("resize", onCheckView);
-
- return () => window.removeEventListener("resize", onCheckView);
- }, []);
-
- return isMobileView;
-};
diff --git a/packages/client/src/store/SsoFormStore.js b/packages/client/src/store/SsoFormStore.js
index 65e7fa81cc..ed4a5f7275 100644
--- a/packages/client/src/store/SsoFormStore.js
+++ b/packages/client/src/store/SsoFormStore.js
@@ -98,7 +98,6 @@ class SsoFormStore {
spMetadata = false;
idpIsModalVisible = false;
spIsModalVisible = false;
- confirmationDisableModal = false;
confirmationResetModal = false;
// errors
@@ -155,12 +154,13 @@ class SsoFormStore {
}
};
- ssoToggle = () => {
+ ssoToggle = (t) => {
if (!this.enableSso) {
this.enableSso = true;
this.serviceProviderSettings = true;
} else {
this.enableSso = false;
+ !this.hasErrors && this.saveSsoSettings(t);
}
for (let key in this) {
@@ -224,14 +224,6 @@ class SsoFormStore {
this.defaultSettings = defaultSettings;
};
- openConfirmationDisableModal = () => {
- this.confirmationDisableModal = true;
- };
-
- closeConfirmationDisableModal = () => {
- this.confirmationDisableModal = false;
- };
-
openResetModal = () => {
this.confirmationResetModal = true;
};
@@ -240,13 +232,6 @@ class SsoFormStore {
this.confirmationResetModal = false;
};
- confirmDisable = () => {
- this.resetForm();
- this.setIsSsoEnabled(false);
- this.ssoToggle();
- this.confirmationDisableModal = false;
- };
-
confirmReset = () => {
this.resetForm();
this.setIsSsoEnabled(false);
@@ -552,12 +537,12 @@ class SsoFormStore {
if (meta.singleSignOnService) {
this.ssoUrlPost = this.getPropValue(
meta.singleSignOnService,
- BINDING_POST
+ BINDING_POST,
);
this.ssoUrlRedirect = this.getPropValue(
meta.singleSignOnService,
- BINDING_REDIRECT
+ BINDING_REDIRECT,
);
}
@@ -568,12 +553,12 @@ class SsoFormStore {
this.sloUrlRedirect = this.getPropValue(
meta.singleLogoutService,
- BINDING_REDIRECT
+ BINDING_REDIRECT,
);
this.sloUrlPost = this.getPropValue(
meta.singleLogoutService,
- BINDING_POST
+ BINDING_POST,
);
}
@@ -598,7 +583,7 @@ class SsoFormStore {
if (meta.certificate.signing) {
if (Array.isArray(meta.certificate.signing)) {
meta.certificate.signing = this.getUniqueItems(
- meta.certificate.signing
+ meta.certificate.signing,
).reverse();
meta.certificate.signing.forEach((signingCrt) => {
data.push({
@@ -690,14 +675,14 @@ class SsoFormStore {
delSpCertificate = (action) => {
this.resetSpCheckboxes(action);
this.spCertificates = this.spCertificates.filter(
- (certificate) => certificate.action !== action
+ (certificate) => certificate.action !== action,
);
};
delIdpCertificate = (cert) => {
this.resetIdpCheckboxes();
this.idpCertificates = this.idpCertificates.filter(
- (certificate) => certificate.crt !== cert
+ (certificate) => certificate.crt !== cert,
);
};
@@ -713,7 +698,7 @@ class SsoFormStore {
(item) =>
(item.action === this.spAction ||
item.action === SSO_SIGNING_ENCRYPT) &&
- !this.isEdit
+ !this.isEdit,
);
};
@@ -785,7 +770,7 @@ class SsoFormStore {
if (
this.idpCertificates.find(
- (item) => item.crt === this.idpCertificate && !this.isEdit
+ (item) => item.crt === this.idpCertificate && !this.isEdit,
)
) {
toastr.error(t("CertificateExist"));
@@ -896,7 +881,7 @@ class SsoFormStore {
if (!this.enableSso || this.isLoadingXml) return true;
return !this.spCertificates.some(
(cert) =>
- cert.action === SSO_SIGNING || cert.action === SSO_SIGNING_ENCRYPT
+ cert.action === SSO_SIGNING || cert.action === SSO_SIGNING_ENCRYPT,
);
}
@@ -904,7 +889,7 @@ class SsoFormStore {
if (!this.enableSso || this.isLoadingXml) return true;
return !this.spCertificates.some(
(cert) =>
- cert.action === SSO_ENCRYPT || cert.action === SSO_SIGNING_ENCRYPT
+ cert.action === SSO_ENCRYPT || cert.action === SSO_SIGNING_ENCRYPT,
);
}
}