diff --git a/client/src/Hooks/settingsHooks.js b/client/src/Hooks/settingsHooks.js
index 7d3ff28fc..98a21c1fa 100644
--- a/client/src/Hooks/settingsHooks.js
+++ b/client/src/Hooks/settingsHooks.js
@@ -3,7 +3,7 @@ import { networkService } from "../main";
import { createToast } from "../Utils/toastUtils";
import { useTranslation } from "react-i18next";
-const useFetchSettings = ({ setSettingsData }) => {
+const useFetchSettings = ({ setSettingsData, setIsApiKeySet, setIsEmailPasswordSet }) => {
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState(undefined);
useEffect(() => {
@@ -12,6 +12,8 @@ const useFetchSettings = ({ setSettingsData }) => {
try {
const response = await networkService.getAppSettings();
setSettingsData(response?.data?.data);
+ setIsApiKeySet(response?.data?.data?.pagespeedKeySet);
+ setIsEmailPasswordSet(response?.data?.data?.emailPasswordSet);
} catch (error) {
createToast({ body: "Failed to fetch settings" });
setError(error);
@@ -20,12 +22,18 @@ const useFetchSettings = ({ setSettingsData }) => {
}
};
fetchSettings();
- }, []);
+ }, [setSettingsData]);
return [isLoading, error];
};
-const useSaveSettings = () => {
+const useSaveSettings = ({
+ setSettingsData,
+ setIsApiKeySet,
+ setApiKeyHasBeenReset,
+ setIsEmailPasswordSet,
+ setEmailPasswordHasBeenReset,
+}) => {
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState(undefined);
const { t } = useTranslation();
@@ -39,7 +47,15 @@ const useSaveSettings = () => {
ttl: settings.checkTTL,
});
}
- console.log({ settingsResponse });
+ setIsApiKeySet(settingsResponse.data.data.pagespeedKeySet);
+ setIsEmailPasswordSet(settingsResponse.data.data.emailPasswordSet);
+ if (settingsResponse.data.data.pagespeedKeySet === true) {
+ setApiKeyHasBeenReset(false);
+ }
+ if (settingsResponse.data.data.emailPasswordSet === true) {
+ setEmailPasswordHasBeenReset(false);
+ }
+ setSettingsData(settingsResponse.data.data);
createToast({ body: t("settingsSuccessSaved") });
} catch (error) {
createToast({ body: t("settingsFailedToSave") });
diff --git a/client/src/Pages/Settings/SettingsEmail.jsx b/client/src/Pages/Settings/SettingsEmail.jsx
index e7ae88154..4bd6ff3ad 100644
--- a/client/src/Pages/Settings/SettingsEmail.jsx
+++ b/client/src/Pages/Settings/SettingsEmail.jsx
@@ -7,7 +7,7 @@ import Stack from "@mui/material/Stack";
// Utils
import { useTheme } from "@emotion/react";
import { PropTypes } from "prop-types";
-import { useState } from "react";
+import { useState, useEffect } from "react";
import { useTranslation } from "react-i18next";
import { PasswordEndAdornment } from "../../Components/Inputs/TextInput/Adornments";
import { useSendTestEmail } from "../../Hooks/useSendTestEmail";
@@ -20,7 +20,9 @@ const SettingsEmail = ({
handleChange,
settingsData,
setSettingsData,
- isPasswordSet,
+ isEmailPasswordSet,
+ emailPasswordHasBeenReset,
+ setEmailPasswordHasBeenReset,
}) => {
// Setup
const { t } = useTranslation();
@@ -43,7 +45,6 @@ const SettingsEmail = ({
} = settingsData?.settings || {};
// Local state
const [password, setPassword] = useState("");
- const [hasBeenReset, setHasBeenReset] = useState(false);
// Network
const [isSending, , sendTestEmail] = useSendTestEmail(); // Using empty placeholder for unused error variable
@@ -152,7 +153,7 @@ const SettingsEmail = ({
onChange={handleChange}
/>
- {(isPasswordSet === false || hasBeenReset === true) && (
+ {(isEmailPasswordSet === false || emailPasswordHasBeenReset === true) && (
{t("settingsEmailPassword")}
)}
- {isPasswordSet === true && hasBeenReset === false && (
+
+ {isEmailPasswordSet === true && emailPasswordHasBeenReset === false && (
{t("settingsEmailFieldResetLabel")}
- {(isApiKeySet === false || hasBeenReset === true) && (
+ {(isApiKeySet === false || apiKeyHasBeenReset === true) && (
)}
- {isApiKeySet === true && hasBeenReset === false && (
+ {isApiKeySet === true && apiKeyHasBeenReset === false && (
{t("pageSpeedApiKeyFieldResetLabel")}