diff --git a/apps/OpenSign/src/components/Header.js b/apps/OpenSign/src/components/Header.js index f1516d6ba..eb8416b6d 100644 --- a/apps/OpenSign/src/components/Header.js +++ b/apps/OpenSign/src/components/Header.js @@ -4,18 +4,20 @@ import FullScreenButton from "./FullScreenButton"; import { useNavigate } from "react-router-dom"; import Parse from "parse"; import { useWindowSize } from "../hook/useWindowSize"; -import { checkIsSubscribed, openInNewTab } from "../constant/Utils"; +import { checkIsSubscribed, getAppLogo, openInNewTab } from "../constant/Utils"; import { isEnableSubscription } from "../constant/const"; const Header = ({ showSidebar }) => { const navigate = useNavigate(); const { width } = useWindowSize(); - let applogo = localStorage.getItem("appLogo") || ""; let username = localStorage.getItem("username"); const image = localStorage.getItem("profileImg") || dp; const [isOpen, setIsOpen] = useState(false); const [isSubscribe, setIsSubscribe] = useState(true); - const [isPro, setIsPro]= useState(false) + const [isPro, setIsPro] = useState(false); + const [applogo, setAppLogo] = useState( + localStorage.getItem("appLogo") || " " + ); const toggleDropdown = () => { setIsOpen(!isOpen); @@ -26,11 +28,18 @@ const Header = ({ showSidebar }) => { }, []); async function checkSubscription() { if (isEnableSubscription) { + const applogo = await getAppLogo(); + if (applogo) { + setAppLogo(applogo); + } else { + setAppLogo(localStorage.getItem("appLogo") || ""); + } const getIsSubscribe = await checkIsSubscribed(); - setIsPro(getIsSubscribe) + setIsPro(getIsSubscribe); setIsSubscribe(getIsSubscribe); } } + const closeDropdown = () => { setIsOpen(false); Parse.User.logOut(); diff --git a/apps/OpenSign/src/constant/Utils.js b/apps/OpenSign/src/constant/Utils.js index 22a0c051f..91ea7d851 100644 --- a/apps/OpenSign/src/constant/Utils.js +++ b/apps/OpenSign/src/constant/Utils.js @@ -1777,3 +1777,19 @@ export const handleCopyNextToWidget = ( setXyPostion(updatePlaceholder); } }; +//fetch tenant app logo from `partners_Tenant` class by domain name +export const getAppLogo = async () => { + const domainName = window.location.host; + try { + const tenantCreditsQuery = new Parse.Query("partners_Tenant"); + tenantCreditsQuery.equalTo("Domain", domainName); + const res = await tenantCreditsQuery.first(); + + if (res) { + const updateRes = JSON.parse(JSON.stringify(res)); + return updateRes?.Logo; + } + } catch (e) { + return null; + } +}; diff --git a/apps/OpenSign/src/pages/Login.js b/apps/OpenSign/src/pages/Login.js index eeaa76447..67488d00a 100644 --- a/apps/OpenSign/src/pages/Login.js +++ b/apps/OpenSign/src/pages/Login.js @@ -19,6 +19,7 @@ import Alert from "../primitives/Alert"; import { appInfo } from "../constant/appinfo"; import { fetchAppInfo } from "../redux/reducers/infoReducer"; import { showTenant } from "../redux/reducers/ShowTenant"; +import { getAppLogo } from "../constant/Utils"; function Login() { const navigate = useNavigate(); const location = useLocation(); @@ -43,7 +44,7 @@ function Login() { Destination: "" }); const [isModal, setIsModal] = useState(false); - const image = appInfo?.applogo || undefined; + const [image, setImage] = useState(appInfo?.applogo); useEffect(() => { if (localStorage.getItem("accesstoken")) { @@ -51,8 +52,19 @@ function Login() { GetLoginData(); } dispatch(fetchAppInfo()); + saveLogo(); + // eslint-disable-next-line }, []); + + const saveLogo = async () => { + const logo = await getAppLogo(); + if (logo) { + setImage(logo); + } else { + setImage(appInfo?.applogo || undefined); + } + }; const handleChange = (event) => { const { name, value } = event.target; setState({ ...state, [name]: value }); diff --git a/apps/OpenSign/src/pages/Signup.js b/apps/OpenSign/src/pages/Signup.js index a3af7263c..2169c0d80 100644 --- a/apps/OpenSign/src/pages/Signup.js +++ b/apps/OpenSign/src/pages/Signup.js @@ -11,6 +11,7 @@ import { useDispatch } from "react-redux"; import { fetchAppInfo } from "../redux/reducers/infoReducer"; import { showTenant } from "../redux/reducers/ShowTenant"; import { isEnableSubscription } from "../constant/const"; +import { getAppLogo } from "../constant/Utils"; const Signup = () => { const { width } = useWindowSize(); const navigate = useNavigate(); @@ -22,6 +23,7 @@ const Signup = () => { const [email, setEmail] = useState(""); const [company, setCompany] = useState(""); const [jobTitle, setJobTitle] = useState(""); + const [image, setImage] = useState(appInfo?.applogo); const [state, setState] = useState({ loading: false, alertType: "success", @@ -33,7 +35,6 @@ const Signup = () => { const [specialCharValid, setSpecialCharValid] = useState(false); const togglePasswordVisibility = () => setShowPassword(!showPassword); - const image = appInfo.applogo; const clearStorage = async () => { if (Parse.User.current()) { @@ -469,9 +470,19 @@ const Signup = () => { }; useEffect(() => { dispatch(fetchAppInfo()); + saveLogo(); // eslint-disable-next-line }, []); + const saveLogo = async () => { + const logo = await getAppLogo(); + if (logo) { + setImage(logo); + } else { + setImage(appInfo?.applogo || undefined); + } + }; + const handlePasswordChange = (e) => { const newPassword = e.target.value; setPassword(newPassword);