feat: auto assign free plan to new signup

This commit is contained in:
prafull-opensignlabs
2024-04-01 19:51:11 +05:30
parent 79e3762b36
commit cea1653805
2 changed files with 39 additions and 7 deletions
+2 -2
View File
@@ -116,10 +116,10 @@ const PlanSubscriptions = () => {
Yearly (10% off)
</span>
</div>
<ul className=" flex flex-col md:flex-row h-full bg-white justify-center">
<ul className="flex flex-col md:flex-row h-full bg-white justify-center">
{plansArr.map((item) => (
<li
className="flex flex-col md:my-0 text-center border-[1px] border-gray-300 w-[260px]"
className="flex flex-col md:my-0 text-center border-collapse border-[1px] border-gray-300 w-[260px]"
key={item.planName}
>
<div className="p-2 flex flex-col justify-center items-center min-h-[320px]">
+37 -5
View File
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
import Parse from "parse";
import axios from "axios";
import Title from "../components/Title";
import { useNavigate, NavLink } from "react-router-dom";
import { useNavigate, NavLink, useLocation } from "react-router-dom";
import login_img from "../assets/images/login_img.svg";
import { useWindowSize } from "../hook/useWindowSize";
import Alert from "../primitives/Alert";
@@ -14,6 +14,7 @@ import { isEnableSubscription } from "../constant/const";
const Signup = () => {
const { width } = useWindowSize();
const navigate = useNavigate();
const location = useLocation();
const dispatch = useDispatch();
const [name, setName] = useState("");
const [phone, setPhone] = useState("");
@@ -68,6 +69,19 @@ const Signup = () => {
localStorage.setItem("baseUrl", baseUrl);
localStorage.setItem("parseAppId", appid);
};
const handleFreePlan = async (id) => {
try {
const params = { userId: id };
const res = await Parse.Cloud.run("freesubscription", params);
if (res.status === "error") {
alert(res.result);
}
} catch (err) {
console.log("err in free subscribe", err.message);
alert("Somenthing went wrong, please try again later!");
}
};
const handleSubmit = (event) => {
event.preventDefault();
if (lengthValid && caseDigitValid && specialCharValid) {
@@ -111,7 +125,13 @@ const Signup = () => {
params
);
if (usersignup) {
handleNavigation(r.getSessionToken());
const param = new URLSearchParams(location.search);
const isFreeplan =
param?.get("subscription") === "freeplan";
if (isFreeplan) {
await handleFreePlan(r.id);
}
handleNavigation(r.getSessionToken(), isFreeplan);
}
} catch (err) {
alert(err.message);
@@ -156,7 +176,7 @@ const Signup = () => {
}
};
const handleNavigation = async (sessionToken) => {
const handleNavigation = async (sessionToken, isFreeplan = false) => {
const baseUrl = localStorage.getItem("baseUrl");
const parseAppId = localStorage.getItem("parseAppId");
const res = await axios.get(baseUrl + "users/me", {
@@ -325,7 +345,13 @@ const Signup = () => {
);
setState({ loading: false });
if (isEnableSubscription) {
navigate(`/subscription`, { replace: true });
if (isFreeplan) {
navigate(
`/${element.pageType}/${element.pageId}`
);
} else {
navigate(`/subscription`, { replace: true });
}
} else {
alert("Registered user successfully");
navigate(
@@ -343,7 +369,13 @@ const Signup = () => {
localStorage.setItem("pageType", element.pageType);
setState({ loading: false });
if (isEnableSubscription) {
navigate(`/subscription`, { replace: true });
if (isFreeplan) {
navigate(
`/${element.pageType}/${element.pageId}`
);
} else {
navigate(`/subscription`, { replace: true });
}
} else {
navigate(
`/${element.pageType}/${element.pageId}`