diff --git a/Client/src/Components/TabPanels/Status/ContentPanel.jsx b/Client/src/Components/TabPanels/Status/ContentPanel.jsx index 42f369d11..64307520e 100644 --- a/Client/src/Components/TabPanels/Status/ContentPanel.jsx +++ b/Client/src/Components/TabPanels/Status/ContentPanel.jsx @@ -1,6 +1,6 @@ import { useState, useCallback, useContext } from "react"; import { Button, Box, Stack, Typography } from "@mui/material"; -import { ConfigBox } from "../../../Pages/Settings/styled"; +import { ConfigBox } from "../../../Pages/Uptime/styled"; import { useTheme } from "@emotion/react"; import TabPanel from "@mui/lab/TabPanel"; import { publicPageGeneralSettingsValidation } from "../../../Validation/validation"; @@ -8,7 +8,7 @@ import { buildErrors } from "../../../Validation/error"; import Card from "./Card"; import update from "immutability-helper"; import Checkbox from "../../Inputs/Checkbox"; -import { StatusFormContext } from "../../../Pages/Status/TabContext"; +import { StatusFormContext } from "../../../Pages/Status/CreateStatusContext"; const ContentPanel = () => { const theme = useTheme(); @@ -100,11 +100,12 @@ const ContentPanel = () => { { Show more details on the status page - { const theme = useTheme(); diff --git a/Client/src/Pages/Status/CreateStatus/index.jsx b/Client/src/Pages/Status/CreateStatus/index.jsx index dfada37d2..297603015 100644 --- a/Client/src/Pages/Status/CreateStatus/index.jsx +++ b/Client/src/Pages/Status/CreateStatus/index.jsx @@ -8,7 +8,7 @@ import { capitalizeFirstLetter } from "../../../Utils/stringUtils"; import ContentPanel from "../../../Components/TabPanels/Status/ContentPanel"; import { publicPageGeneralSettingsValidation } from "../../../Validation/validation"; import { hasValidationErrors } from "../../../Validation/error"; -import { StatusFormProvider } from "../TabContext"; +import { StatusFormProvider } from "../CreateStatusContext"; /** * CreateStatus page renders a page with tabs for general settings and contents. * @param {string} [props.open] - Specifies the initially open tab: 'general settings' or 'content'. @@ -19,6 +19,8 @@ const CreateStatus = ({ open = "general-settings", initForm }) => { const theme = useTheme(); let tabList = ["General Settings", "Contents"]; const [errors, setErrors] = useState({}); + const error_tab_maping = [["companyName","url","timezone","color","publish","logo"],["monitors", + "showUptimePercentage", "showBarcode"]] const [form, setForm] = useState({ companyName: "", url: "", @@ -39,6 +41,7 @@ const CreateStatus = ({ open = "general-settings", initForm }) => { const [tabIdx, setTabIdx] = useState(tabList.indexOf(tab)); const handleTabChange = (event, newTab) => { + setTabIdx(tabList.indexOf(newTab)); }; @@ -57,9 +60,24 @@ const CreateStatus = ({ open = "general-settings", initForm }) => { form.logo = { ...logo, size: formatBytes(logo?.size) }; }; - useEffect(() => { + useEffect(() => { + let newIdx = -1; + Object.keys(errors).map(id=>{ + console.log("errors id") + console.log(id) + error_tab_maping.map((val, idx) => { + let anyMatch = val.some(vl=> vl==id ) + if(anyMatch){ + newIdx = idx; + } + }) + }) + console.log("newIdx") + console.log(newIdx) + if(newIdx!==-1) + setTabIdx(newIdx) setTabIdx(tabList.indexOf(tab)); - }, [tab]); + }, [tab,errors]); return (