feat: restrict route if user subscription is expired

This commit is contained in:
prafull-opensignlabs
2024-03-20 15:26:38 +05:30
parent 5ece3c0694
commit eafb26d462
2 changed files with 118 additions and 15 deletions
+53 -7
View File
@@ -18,6 +18,12 @@ const HomeLayout = () => {
const arr = useSelector((state) => state.TourSteps);
const [isUserValid, setIsUserValid] = useState(true);
const [isLoader, setIsLoader] = useState(true);
// reactour state
const [isCloseBtn, setIsCloseBtn] = useState(true);
const [isTour, setIsTour] = useState(false);
const [tourStatusArr, setTourStatusArr] = useState([]);
const [tourConfigs, setTourConfigs] = useState([]);
useEffect(() => {
(async () => {
try {
@@ -27,7 +33,7 @@ const HomeLayout = () => {
sessionToken: localStorage.getItem("accesstoken")
});
if (user) {
setIsUserValid(true);
checkIsSubscribed();
setIsLoader(false);
} else {
setIsUserValid(false);
@@ -37,14 +43,54 @@ const HomeLayout = () => {
setIsUserValid(false);
}
})();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
// reactour state
const [isCloseBtn, setIsCloseBtn] = useState(true);
const [isTour, setIsTour] = useState(false);
const [tourStatusArr, setTourStatusArr] = useState([]);
const [tourConfigs, setTourConfigs] = useState([]);
async function checkIsSubscribed() {
const currentUser = Parse.User.current();
// const userSettings = appInfo.settings;
// const setting = userSettings.find((x) => x.role === _currentRole);
// const redirectUrl =
// location?.state?.from || `/${setting.pageType}/${setting.pageId}`;
const user = await Parse.Cloud.run("getUserDetails", {
email: currentUser.get("email")
});
const _user = user.toJSON();
if (_user.TenantId) {
localStorage.setItem("TenetId", _user.TenantId.objectId);
}
// localStorage.setItem("PageLanding", setting.pageId);
// localStorage.setItem("defaultmenuid", setting.menuId);
// localStorage.setItem("pageType", setting.pageType);
if (process.env.REACT_APP_ENABLE_SUBSCRIPTION) {
// const LocalUserDetails = {
// name: _user.Name,
// email: _user.Email,
// phone: _user.Phone,
// company: _user.Company
// };
// localStorage.setItem("userDetails", JSON.stringify(LocalUserDetails));
const billingDate = _user.Next_billing_date && _user.Next_billing_date;
if (billingDate) {
if (billingDate > new Date()) {
// localStorage.removeItem("userDetails");
// Redirect to the appropriate URL after successful login
// navigate(redirectUrl);
setIsUserValid(true);
return true;
} else {
navigate(`/subscription`);
}
} else {
navigate(`/subscription`);
}
} else {
setIsUserValid(true);
return true;
// Redirect to the appropriate URL after successful login
// navigate(redirectUrl);
}
}
const showSidebar = () => {
setIsOpen((value) => !value);
};
+65 -8
View File
@@ -745,6 +745,13 @@ function Login() {
// Get TenentID from Extendend Class
localStorage.setItem("extended_class", item.extended_class);
const currentUser = Parse.User.current();
const userSettings = appInfo.settings;
const setting = userSettings.find(
(x) => x.role === _currentRole
);
const redirectUrl =
location?.state?.from ||
`/${setting.pageType}/${setting.pageId}`;
await Parse.Cloud.run("getUserDetails", {
email: currentUser.get("email")
}).then(
@@ -783,16 +790,66 @@ function Login() {
tenentInfo.push(obj);
}
});
localStorage.setItem("PageLanding", item.pageId);
localStorage.setItem("defaultmenuid", item.menuId);
localStorage.setItem("pageType", item.pageType);
navigate(`/${item.pageType}/${item.pageId}`);
localStorage.setItem("PageLanding", setting.pageId);
localStorage.setItem(
"defaultmenuid",
setting.menuId
);
localStorage.setItem("pageType", setting.pageType);
if (process.env.REACT_APP_ENABLE_SUBSCRIPTION) {
const LocalUserDetails = {
name: results[0].get("Name"),
email: results[0].get("Email"),
phone: results[0].get("Phone"),
company: results[0].get("Company")
};
localStorage.setItem(
"userDetails",
JSON.stringify(LocalUserDetails)
);
const billingDate =
results[0].get("Next_billing_date") &&
results[0].get("Next_billing_date");
if (billingDate) {
if (billingDate > new Date()) {
localStorage.removeItem("userDetails");
// Redirect to the appropriate URL after successful login
navigate(redirectUrl);
} else {
navigate(`/subscription`);
}
} else {
navigate(`/subscription`);
}
} else {
// Redirect to the appropriate URL after successful login
navigate(redirectUrl);
}
}
} else {
localStorage.setItem("PageLanding", item.pageId);
localStorage.setItem("defaultmenuid", item.menuId);
localStorage.setItem("pageType", item.pageType);
navigate(`/${item.pageType}/${item.pageId}`);
localStorage.setItem("PageLanding", setting.pageId);
localStorage.setItem("defaultmenuid", setting.menuId);
localStorage.setItem("pageType", setting.pageType);
setState({ ...state, loading: false });
if (process.env.REACT_APP_ENABLE_SUBSCRIPTION) {
const LocalUserDetails = {
name: results[0].get("Name"),
email: results[0].get("Email"),
phone: results[0].get("Phone")
// company: results.get("Company"),
};
localStorage.setItem(
"userDetails",
JSON.stringify(LocalUserDetails)
);
const billingDate = "";
if (billingDate) {
navigate(`/subscription`);
}
} else {
// Redirect to the appropriate URL after successful login
navigate(redirectUrl);
}
}
},
(error) => {