diff --git a/env.txt b/env.txt
index d237a17..dc9cb6e 100644
--- a/env.txt
+++ b/env.txt
@@ -1,2 +1,2 @@
-PUBLIC_API_KEY=1234567890abcdef
-PUBLIC_SECRET_KEY=my-secret-key
\ No newline at end of file
+PUBLIC_BUZZ_ONE_BASE_URL=https://beanstalkedu.in/api/one/v1/
+PUBLIC_BUZZ_BASE_URL=https://beanstalkedu.in/api/
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 9afb0f1..8df1277 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9864,8 +9864,6 @@
},
"node_modules/npm/node_modules/cross-spawn/node_modules/which": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"inBundle": true,
"license": "ISC",
"dependencies": {
diff --git a/public/blogs-sitemap.xml b/public/blogs-sitemap.xml
new file mode 100644
index 0000000..b16207d
--- /dev/null
+++ b/public/blogs-sitemap.xml
@@ -0,0 +1,44 @@
+
+
+https://akadmyapp.com/blogs/guide-to-preschool-assessment-tools
+
+
+https://akadmyapp.com/blogs/summer-camp-activities-for-preschool
+
+
+https://akadmyapp.com/blogs/first-day-preschool-activities-ideas
+
+
+https://akadmyapp.com/blogs/lesson-plan-for-preschool-a-complete-guide
+
+
+https://akadmyapp.com/blogs/benefits-of-preschool-learning-games-for-early-education
+
+
+https://akadmyapp.com/blogs/preschool-online-learning-games-kits-apps-worksheets
+
+
+https://akadmyapp.com/blogs/seamless-scalability-akadmy-empowering-early-education
+
+
+https://akadmyapp.com/blogs/ai-tools-for-teachers
+
+
+https://akadmyapp.com/blogs/what-should-be-included-in-a-preschool-report-card
+
+
+https://akadmyapp.com/blogs/ideas-of-worksheets-for-preschool
+
+
+https://akadmyapp.com/blogs/power-of-early-learning-why-preschool-education-is-important
+
+
+https://akadmyapp.com/blogs/how-do-classroom-management-tools-help-educators
+
+
+https://akadmyapp.com/blogs/anecdotal-record-a-guide-for-early-childhood-educators
+
+
+https://akadmyapp.com/blogs/preschool-activity-plans-that-make-learning-fun
+
+
\ No newline at end of file
diff --git a/public/general-sitemap.xml b/public/general-sitemap.xml
new file mode 100644
index 0000000..d441b4b
--- /dev/null
+++ b/public/general-sitemap.xml
@@ -0,0 +1,32 @@
+
+
+https://akadmyapp.com/
+
+
+https://akadmyapp.com/learning-solutions-for-preschools
+
+
+https://akadmyapp.com/preschool-management-solutions
+
+
+https://akadmyapp.com/pricing/akadmy-platform-pricing
+
+
+https://akadmyapp.com/pricing/akadmy-product-pricing
+
+
+https://akadmyapp.com/interakto-coding-worksheets
+
+
+https://akadmyapp.com/term-and-conditions
+
+
+https://akadmyapp.com/contact-us
+
+
+https://akadmyapp.com/purchase/cart
+
+
+https://akadmyapp.com/about-us
+
+
\ No newline at end of file
diff --git a/public/images-sitemap.xml b/public/images-sitemap.xml
new file mode 100644
index 0000000..268b825
--- /dev/null
+++ b/public/images-sitemap.xml
@@ -0,0 +1,197 @@
+
+
+https://akadmyapp.com/assets/home_banner.webp
+
+
+https://akadmyapp.com/assets/Home_TB.webp
+
+
+https://akadmyapp.com/assets/Home_Interakto.webp
+
+
+https://akadmyapp.com/assets/Home_Toddler.webp
+
+
+https://akadmyapp.com/assets/home_platform.webp
+
+
+https://akadmyapp.com/assets/home_platform2.webp
+
+
+https://akadmyapp.com/assets/interakto-coding-section3-3.webp
+
+
+https://akadmyapp.com/assets/Next-Gen-Tech.webp
+
+
+https://akadmyapp.com/assets/Home_parent.webp
+
+
+https://akadmyapp.com/assets/Home_educator.webp
+
+
+https://akadmyapp.com/assets/Home_learner.webp
+
+
+https://akadmyapp.com/assets/contact.svg
+
+
+https://akadmyapp.com/assets/akademy_Logo.png
+
+
+https://akadmyapp.com/assets/prime.webp
+
+
+https://akadmyapp.com/assets/specific.webp
+
+
+https://akadmyapp.com/assets/augmented.webp
+
+
+https://akadmyapp.com/assets/worksheet_4.webp
+
+
+https://akadmyapp.com/assets/worksheet_1.webp
+
+
+https://akadmyapp.com/assets/worksheet_2.webp
+
+
+https://akadmyapp.com/assets/worksheet_3.webp
+
+
+https://akadmyapp.com/assets/ReportCard.webp
+
+
+https://akadmyapp.com/assets/Resources_CurriculumFocus.webp
+
+
+https://akadmyapp.com/assets/Co_Curriculum.webp
+
+
+https://akadmyapp.com/assets/contact.svg
+
+
+https://akadmyapp.com/assets/Interakto_Understanding_world.webp
+
+
+https://akadmyapp.com/assets/interakto_literacy.webp
+
+
+https://akadmyapp.com/assets/Interakto_math.webp
+
+
+https://akadmyapp.com/assets/Interakto_Celebrations.webp
+
+
+https://akadmyapp.com/assets/Interakto_Thinking.webp
+
+
+https://akadmyapp.com/assets/Interakto_coding.webp
+
+
+https://akadmyapp.com/assets/Problem_Solving.webp
+
+
+https://akadmyapp.com/assets/Interakto_Perseverance.webp
+
+
+https://akadmyapp.com/assets/earth.webp
+
+
+https://akadmyapp.com/assets/Fruits.webp
+
+
+https://akadmyapp.com/assets/shaps.webp
+
+
+https://akadmyapp.com/assets/Letter_B.webp
+
+
+https://akadmyapp.com/assets/InteraktoCodingWithoutBG.webp
+
+
+https://akadmyapp.com/assets/InteraktoRobotics.webp
+
+
+https://akadmyapp.com/assets/Family.webp
+
+
+https://akadmyapp.com/assets/babies_child.webp
+
+
+https://akadmyapp.com/assets/food.webp
+
+
+https://akadmyapp.com/assets/home.webp
+
+
+https://akadmyapp.com/assets/outside.webp
+
+
+https://akadmyapp.com/assets/animal.webp
+
+
+https://akadmyapp.com/assets/Friends.webp
+
+
+https://akadmyapp.com/assets/Class.webp
+
+
+https://akadmyapp.com/assets/AI-Attendance.webp
+
+
+https://akadmyapp.com/assets/Buzzboard.webp
+
+
+https://akadmyapp.com/assets/observation.webp
+
+
+https://akadmyapp.com/assets/Games.webp
+
+
+https://akadmyapp.com/assets/family-comunications.webp
+
+
+https://akadmyapp.com/assets/Academic-Report.webp
+
+
+https://akadmyapp.com/assets/family-comunications.webp
+
+
+https://akadmyapp.com/assets/Magic-Workshetets.webp
+
+
+https://akadmyapp.com/assets/Academic-Report.webp
+
+
+https://akadmyapp.com/assets/home_platform.webp
+
+
+https://akadmyapp.com/assets/Interakto_Coding_img.webp
+
+
+https://akadmyapp.com/assets/Data-driven_Decision-making.webp
+
+
+https://akadmyapp.com/assets/developmental_Insights.webp
+
+
+https://akadmyapp.com/assets/connecting_with_Parents.webp
+
+
+https://akadmyapp.com/assets/ai_powered.webp
+
+
+https://akadmyapp.com/assets/Captivating_Worksheets.webp
+
+
+https://akadmyapp.com/assets/Interakto.webp
+
+
+https://akadmyapp.com/assets/TeenyBeans.webp
+
+
+https://akadmyapp.com/assets/Toddlers.webp
+
+
\ No newline at end of file
diff --git a/public/products-sitemap.xml b/public/products-sitemap.xml
new file mode 100644
index 0000000..ca8fd35
--- /dev/null
+++ b/public/products-sitemap.xml
@@ -0,0 +1,11 @@
+
+
+https://akadmyapp.com/digital-preschool-curriculum/
+
+
+https://akadmyapp.com/interactive-learning-resources-for-preschool
+
+
+https://akadmyapp.com/mother-toddler-program
+
+
\ No newline at end of file
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..e2554b5
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,4 @@
+User-agent: *
+Allow: /
+Disallow: /_DIZ_ADMIN/
+Sitemap: https://akadmyapp.com/sitemap.xml
\ No newline at end of file
diff --git a/public/sitemap.xml b/public/sitemap.xml
new file mode 100644
index 0000000..0d2fa75
--- /dev/null
+++ b/public/sitemap.xml
@@ -0,0 +1,14 @@
+
+
+https://akadmyapp.com/products-sitemap.xml
+
+
+https://akadmyapp.com/general-sitemap.xml
+
+
+https://akadmyapp.com/images-sitemap.xml
+
+
+https://akadmyapp.com/blogs-sitemap.xml
+
+
\ No newline at end of file
diff --git a/src/components/Blogs/SingleBlog.jsx b/src/components/Blogs/SingleBlog.jsx
index 82e3a75..0b9884e 100644
--- a/src/components/Blogs/SingleBlog.jsx
+++ b/src/components/Blogs/SingleBlog.jsx
@@ -30,9 +30,16 @@ const Blog = (props) => {
// }, [slug]);
// blog
- const newSchema = props.blog && props.blog.schema && props.blog?.schema.replaceAll("\n", "");
- const newSchema2 = props.blog && props.blog.schema2 && props.blog?.schema2.replaceAll("\n", "");
- const newSchema3 = props.blog && props.blog.schema3 && props.blog?.schema3.replaceAll("\n", "");
+ const newSchema =
+ props.blog && props.blog.schema && props.blog?.schema.replaceAll("\n", "");
+ const newSchema2 =
+ props.blog &&
+ props.blog.schema2 &&
+ props.blog?.schema2.replaceAll("\n", "");
+ const newSchema3 =
+ props.blog &&
+ props.blog.schema3 &&
+ props.blog?.schema3.replaceAll("\n", "");
// console.log("blogUrl", `https://akadmyapp.com${pathname}`);
diff --git a/src/components/environments/environments.js b/src/components/environments/environments.js
index fecdae3..d907af8 100644
--- a/src/components/environments/environments.js
+++ b/src/components/environments/environments.js
@@ -1,10 +1,10 @@
import { TOKEN_NAME } from "../utils/constants";
-export const API_BASE_BUZZONE = import.meta.env.VITE_BUZZ_ONE_BASE_URL;
-export const API_BASE_BUZZ = import.meta.env.VITE_BUZZ_BASE_URL;
+export const API_BASE_BUZZONE = import.meta.env.PUBLIC_BUZZ_ONE_BASE_URL;
+export const API_BASE_BUZZ = import.meta.env.PUBLIC_BUZZ_BASE_URL;
export const AUTH_TOKEN = () => localStorage.getItem(TOKEN_NAME);
export const SCHOOL_ID = () => localStorage.getItem("SCHOOL_ID");
-console.log('TestENV', import.meta.env.PUBLIC_API_KEY);
-console.log('TestENV', import.meta.env.PUBLIC_SECRET_KEY);
+console.log("TestENV", import.meta.env.PUBLIC_BUZZ_ONE_BASE_URL);
+console.log("TestENV", import.meta.env.PUBLIC_BUZZ_BASE_URL);
diff --git a/src/components/purchase/Cart/Cart.jsx b/src/components/purchase/Cart/Cart.jsx
index 96d42ca..d7bd25c 100644
--- a/src/components/purchase/Cart/Cart.jsx
+++ b/src/components/purchase/Cart/Cart.jsx
@@ -1,4 +1,4 @@
-import React, { useMemo, useState } from "react";
+import React, { useEffect, useMemo, useState } from "react";
import ArrowForwardOutlinedIcon from "@mui/icons-material/ArrowForwardOutlined";
import ClearIcon from "@mui/icons-material/Clear";
@@ -11,240 +11,259 @@ import ProductCard from "../components/ProductCard/ProductCard";
import { useDispatch, useSelector } from "react-redux";
import { toast } from "react-toastify";
-import { removeItemFromCart, updatePurchase, validateCoupon } from "../../redux/purchaseSlice";
+import {
+ getPurchaseDetails,
+ removeItemFromCart,
+ updatePurchase,
+ validateCoupon,
+} from "../../redux/purchaseSlice";
import { getFormattedCurrency } from "../../utils";
import style from "./Cart.module.css";
function CartPage() {
- const dispatch = useDispatch();
- // const navigate = useNavigate();
+ const dispatch = useDispatch();
+ // const navigate = useNavigate();
- const { purchaseDetails } = useSelector(({ purchase }) => {
- return {
- purchaseDetails: purchase.purchaseDetails,
- };
- });
+ const { purchaseDetails } = useSelector(({ purchase }) => {
+ return {
+ purchaseDetails: purchase.purchaseDetails,
+ };
+ });
- const removeFromCart = (cartItemId) => {
- if (window.confirm("Do you really want to remove this Item?")) {
- dispatch(removeItemFromCart({ cartItemId }));
- }
- };
+ console.log("purchaseDetails", purchaseDetails);
- const changeLicenseCount = (cartItemId, licenseCount) => {
- let cartItem = purchaseDetails.cartItems.find(
- ({ _id }) => _id === cartItemId
- );
- cartItem = JSON.parse(JSON.stringify(cartItem));
- if (!cartItem.additionalLicenses || cartItem.additionalLicenses.length <= 0)
- return;
- cartItem.additionalLicenses[0].count = licenseCount;
+ const removeFromCart = (cartItemId) => {
+ if (window.confirm("Do you really want to remove this Item?")) {
+ dispatch(removeItemFromCart({ cartItemId }));
+ }
+ };
- dispatch(
- updatePurchase({
- cartItem,
- })
- );
- };
+ const changeLicenseCount = (cartItemId, licenseCount) => {
+ let cartItem = purchaseDetails.cartItems.find(
+ ({ _id }) => _id === cartItemId
+ );
+ cartItem = JSON.parse(JSON.stringify(cartItem));
+ if (!cartItem.additionalLicenses || cartItem.additionalLicenses.length <= 0)
+ return;
+ cartItem.additionalLicenses[0].count = licenseCount;
- const changeBuyOnlyLicenseFlag = (cartItemId, value) => {
- let cartItem = purchaseDetails.cartItems.find(
- ({ _id }) => _id === cartItemId
- );
+ dispatch(
+ updatePurchase({
+ cartItem,
+ })
+ );
+ };
- const payload = {
- _id: cartItem._id,
- planId: cartItem.planId,
- buyingOnlyLicenses: value,
- };
+ const changeBuyOnlyLicenseFlag = (cartItemId, value) => {
+ let cartItem = purchaseDetails.cartItems.find(
+ ({ _id }) => _id === cartItemId
+ );
- dispatch(
- updatePurchase({
- cartItem: payload,
- })
- );
- };
+ const payload = {
+ _id: cartItem._id,
+ planId: cartItem.planId,
+ buyingOnlyLicenses: value,
+ };
- const changeTerm = (cartItemId, newIdx) => {
- let cartItem = purchaseDetails.cartItems.find(
- ({ _id }) => _id === cartItemId
- );
- cartItem = JSON.parse(JSON.stringify(cartItem));
+ dispatch(
+ updatePurchase({
+ cartItem: payload,
+ })
+ );
+ };
- cartItem.planVariantIdx = newIdx;
+ const changeTerm = (cartItemId, newIdx) => {
+ let cartItem = purchaseDetails.cartItems.find(
+ ({ _id }) => _id === cartItemId
+ );
+ cartItem = JSON.parse(JSON.stringify(cartItem));
- dispatch(
- updatePurchase({
- cartItem,
- })
- );
- };
+ cartItem.planVariantIdx = newIdx;
- const redirectToCheckout = () => {
- // navigate("/purchase/user_details");
- window.location.href = "/purchase/user_details";
- };
+ dispatch(
+ updatePurchase({
+ cartItem,
+ })
+ );
+ };
- const [couponCode, setCouponCode] = useState("");
+ const redirectToCheckout = () => {
+ // navigate("/purchase/user_details");
+ window.location.href = "/purchase/user_details";
+ };
- const applyDiscount = () => {
- dispatch(validateCoupon({ couponCode }))
- .unwrap()
- .then((res) => {
- const { getOffer } = res;
- let discount = { code: couponCode };
- if (getOffer.type === "PERCENTAGE") discount.percentage = getOffer.amount;
- else if (getOffer.type === "FLAT") discount.amount = getOffer.amount;
+ const [couponCode, setCouponCode] = useState("");
- dispatch(
- updatePurchase({
- discount,
- })
- );
- setCouponCode("");
- })
- .catch((err) => {
- toast.error(err.message);
- });
- };
+ const applyDiscount = () => {
+ dispatch(validateCoupon({ couponCode }))
+ .unwrap()
+ .then((res) => {
+ const { getOffer } = res;
+ let discount = { code: couponCode };
+ if (getOffer.type === "PERCENTAGE")
+ discount.percentage = getOffer.amount;
+ else if (getOffer.type === "FLAT") discount.amount = getOffer.amount;
- const removeDiscount = () => {
- dispatch(
- updatePurchase({
- discount: null,
- })
- );
- };
+ dispatch(
+ updatePurchase({
+ discount,
+ })
+ );
+ setCouponCode("");
+ })
+ .catch((err) => {
+ toast.error(err.message);
+ });
+ };
- const isCartEmpty = useMemo(() => {
- return purchaseDetails && purchaseDetails.currency ? false : true;
- }, [purchaseDetails]);
+ const removeDiscount = () => {
+ dispatch(
+ updatePurchase({
+ discount: null,
+ })
+ );
+ };
- return (
-
-
-
-
- {" "}
-
- {!isCartEmpty
- ? `Your cart total is ${getFormattedCurrency(
- purchaseDetails.currency,
- purchaseDetails.totalCost
- )}`
- : "Your cart is Empty"}
-
-
-
+ const isCartEmpty = useMemo(() => {
+ return purchaseDetails && purchaseDetails.currency ? false : true;
+ }, [purchaseDetails]);
-
- {purchaseDetails &&
- purchaseDetails.cartItems &&
- purchaseDetails.cartItems.map((data) => (
-
- ))}
-
+ useEffect(() => {
+ dispatch(getPurchaseDetails());
+ }, []);
-
-
-
Sub-total
-
- {purchaseDetails
- ? getFormattedCurrency(
- purchaseDetails.currency,
- purchaseDetails.subTotalCost
- )
- : "Nil"}
-
-
-
-
Other taxes
-
- {purchaseDetails
- ? getFormattedCurrency(
- purchaseDetails.currency,
- purchaseDetails.otherTaxesCost
- )
- : "Nil"}
-
-
-
-
Have a discount code?
- {purchaseDetails && purchaseDetails.discount ? (
- <>
-
- {purchaseDetails.discount.code} {" "}
-
-
+ return (
+
+
+
+
+ {" "}
+
+ {!isCartEmpty
+ ? `Your cart total is ${getFormattedCurrency(
+ purchaseDetails.currency,
+ purchaseDetails.totalCost
+ )}`
+ : "Your cart is Empty"}
+
+
+
-
- {getFormattedCurrency(
- purchaseDetails.currency,
- -purchaseDetails.discount.amount
- )}
-
- >
- ) : (
-
- {
- setCouponCode(e.target.value);
- }}
- />
-
-
- )}
-
+
+ {purchaseDetails &&
+ purchaseDetails.cartItems &&
+ purchaseDetails.cartItems.map((data) => (
+
+ ))}
+
-
-
Total
-
- {purchaseDetails
- ? getFormattedCurrency(
- purchaseDetails.currency,
- purchaseDetails.totalCost
- )
- : "Nil"}
-
-
-
-
-
-
- );
+
+
+
Sub-total
+
+ {purchaseDetails
+ ? getFormattedCurrency(
+ purchaseDetails.currency,
+ purchaseDetails.subTotalCost
+ )
+ : "Nil"}
+
+
+
+
Other taxes
+
+ {purchaseDetails
+ ? getFormattedCurrency(
+ purchaseDetails.currency,
+ purchaseDetails.otherTaxesCost
+ )
+ : "Nil"}
+
+
+
+
Have a discount code?
+ {purchaseDetails && purchaseDetails.discount ? (
+ <>
+
+ {purchaseDetails.discount.code} {" "}
+
+
+
+
+ {getFormattedCurrency(
+ purchaseDetails.currency,
+ -purchaseDetails.discount.amount
+ )}
+
+ >
+ ) : (
+
+ {
+ setCouponCode(e.target.value);
+ }}
+ />
+
+
+ )}
+
+
+
+
Total
+
+ {purchaseDetails
+ ? getFormattedCurrency(
+ purchaseDetails.currency,
+ purchaseDetails.totalCost
+ )
+ : "Nil"}
+
+
+
+
+
+
+ );
}
export default CartPage;
diff --git a/src/components/redux/purchaseSlice.js b/src/components/redux/purchaseSlice.js
index 5bab827..4139693 100644
--- a/src/components/redux/purchaseSlice.js
+++ b/src/components/redux/purchaseSlice.js
@@ -3,283 +3,284 @@ import { isAxiosError } from "axios";
import { axiosBuzz, axiosBuzzOne } from "../utils/axios";
export const getAkademyPlans = createAsyncThunk(
- `COMMON/akademy/plans`,
- async (payload) => {
- try {
- const response = await axiosBuzzOne({
- method: "GET",
- url: "/akademy/subscriptions/plans",
- });
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ `COMMON/akademy/plans`,
+ async (payload) => {
+ try {
+ const response = await axiosBuzzOne({
+ method: "GET",
+ url: "/akademy/subscriptions/plans",
+ });
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const getAkademyClasses = createAsyncThunk(
- `COMMON/akademy/classes`,
- async (payload) => {
- try {
- const response = await axiosBuzzOne({
- method: "GET",
- url: "/akademy/bcc/school/classes",
- });
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ `COMMON/akademy/classes`,
+ async (payload) => {
+ try {
+ const response = await axiosBuzzOne({
+ method: "GET",
+ url: "/akademy/bcc/school/classes",
+ });
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const createPurchase = createAsyncThunk(
- `PURCHASE:POST/akademy/purchase`,
- async (payload) => {
- try {
- const response = await axiosBuzzOne({
- method: "POST",
- url: "/akademy/subscriptions/purchase",
- });
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ `PURCHASE:POST/akademy/purchase`,
+ async (payload) => {
+ try {
+ const response = await axiosBuzzOne({
+ method: "POST",
+ url: "/akademy/subscriptions/purchase",
+ });
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const updatePurchase = createAsyncThunk(
- `PURCHASE:PUT/akademy/purchase`,
- async (payload, { getState, dispatch }) => {
- const { purchase } = getState();
+ `PURCHASE:PUT/akademy/purchase`,
+ async (payload, { getState, dispatch }) => {
+ const { purchase } = getState();
- try {
- const response = await axiosBuzzOne({
- method: "PUT",
- url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart`,
- data: payload,
- });
- dispatch(getPurchaseDetails());
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ try {
+ const response = await axiosBuzzOne({
+ method: "PUT",
+ url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart`,
+ data: payload,
+ });
+ dispatch(getPurchaseDetails());
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const removeItemFromCart = createAsyncThunk(
- `PURCHASE:DELETE/akademy/purchase`,
- async (payload, { getState, dispatch }) => {
- const { cartItemId } = payload;
- const { purchase } = getState();
+ `PURCHASE:DELETE/akademy/purchase`,
+ async (payload, { getState, dispatch }) => {
+ const { cartItemId } = payload;
+ const { purchase } = getState();
- try {
- const response = await axiosBuzzOne({
- method: "DELETE",
- url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart/${cartItemId}`,
- data: payload,
- });
- dispatch(getPurchaseDetails());
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ try {
+ const response = await axiosBuzzOne({
+ method: "DELETE",
+ url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart/${cartItemId}`,
+ data: payload,
+ });
+ dispatch(getPurchaseDetails());
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const getPurchaseDetails = createAsyncThunk(
- `PURCHASE:GET/akademy/purchase`,
- async (payload, { getState }) => {
- const { purchase } = getState();
- try {
- const response = await axiosBuzzOne({
- method: "GET",
- url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart`,
- });
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ `PURCHASE:GET/akademy/purchase`,
+ async (payload, { getState }) => {
+ const { purchase } = getState();
+ try {
+ const response = await axiosBuzzOne({
+ method: "GET",
+ url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart`,
+ });
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const initiatePayment = createAsyncThunk(
- `PURCHASE:POST/akademy/purchase/initiatePayment`,
- async (payload, { getState }) => {
- const { purchase } = getState();
- try {
- const response = await axiosBuzzOne({
- method: "POST",
- url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart/checkout`,
- });
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ `PURCHASE:POST/akademy/purchase/initiatePayment`,
+ async (payload, { getState }) => {
+ const { purchase } = getState();
+ try {
+ const response = await axiosBuzzOne({
+ method: "POST",
+ url: `/akademy/subscriptions/purchase/${purchase.purchaseId}/cart/checkout`,
+ });
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const verifyPayment = createAsyncThunk(
- `PURCHASE:POST/akademy/purchase/verifyPayment`,
- async (payload) => {
- try {
- const response = await axiosBuzz({
- method: "POST",
- url: "/payments/verify",
- data: {
- txnId: payload.txnId,
- provider: "airpay",
- },
- });
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ `PURCHASE:POST/akademy/purchase/verifyPayment`,
+ async (payload) => {
+ try {
+ const response = await axiosBuzz({
+ method: "POST",
+ url: "/payments/verify",
+ data: {
+ txnId: payload.txnId,
+ provider: "airpay",
+ },
+ });
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const validateCoupon = createAsyncThunk(
- `COUPON:POST/validate`,
- async (payload) => {
- try {
- const response = await axiosBuzzOne({
- method: "POST",
- url: "/offer/validate-coupon",
- data: {
- code: payload.couponCode,
- },
- });
- return response.data;
- } catch (err) {
- console.log(err);
- if (isAxiosError(err))
- throw new Error(err.response.data.message || "Something went wrong");
- throw err;
- }
- }
+ `COUPON:POST/validate`,
+ async (payload) => {
+ try {
+ const response = await axiosBuzzOne({
+ method: "POST",
+ url: "/offer/validate-coupon",
+ data: {
+ code: payload.couponCode,
+ },
+ });
+ return response.data;
+ } catch (err) {
+ console.log(err);
+ if (isAxiosError(err))
+ throw new Error(err.response.data.message || "Something went wrong");
+ throw err;
+ }
+ }
);
export const getAllTeenybeansLanguages = createAsyncThunk(
- `PURCHASE:getAllTeenybeansLanguages`,
- async (paylaod, { rejectWithValue }) => {
- try {
- const response = await axiosBuzzOne({
- method: "GET",
- url: "/akademy/bcc/user/languages",
- });
- return response.data;
- } catch (error) {
- return rejectWithValue(error.response.data);
- }
- }
+ `PURCHASE:getAllTeenybeansLanguages`,
+ async (paylaod, { rejectWithValue }) => {
+ try {
+ const response = await axiosBuzzOne({
+ method: "GET",
+ url: "/akademy/bcc/user/languages",
+ });
+ return response.data;
+ } catch (error) {
+ return rejectWithValue(error.response.data);
+ }
+ }
);
export const purchaseSlice = createSlice({
- name: "purchase",
- initialState: {
- currency: localStorage.getItem("currency") || "INR",
- planDetails: {},
- planPriceDetails: {
- RETAIL_PARENT: {},
- TUTION_EDUCATOR: {},
- ENTERPRISE_SCHOOL: {},
- },
- classes: [],
- purchaseId: localStorage.getItem("PURCHASE_ID"),
- purchaseDetails: {},
- userDetails:
- (localStorage.getItem("USER_DETAILS") &&
- JSON.parse(localStorage.getItem("USER_DETAILS"))) ||
- {},
- statusByName: {},
- teenybeansLanguages: [],
- },
- reducers: {
- clearPurchaseCart: (state, action) => {
- state.purchaseId = undefined;
- localStorage.removeItem("PURCHASE_ID");
- state.purchaseDetails = {};
- state.userDetails = {};
- localStorage.removeItem("USER_DETAILS");
- /////////////////////////////////////////////
- localStorage.removeItem("IS_USER_VERIFIED");
- localStorage.removeItem("IS_EMAIL_OTP_SENT");
- },
+ name: "purchase",
+ initialState: {
+ currency: localStorage.getItem("currency") || "INR",
+ planDetails: {},
+ planPriceDetails: {
+ RETAIL_PARENT: {},
+ TUTION_EDUCATOR: {},
+ ENTERPRISE_SCHOOL: {},
+ },
+ classes: [],
+ purchaseId: localStorage.getItem("PURCHASE_ID"),
+ purchaseDetails: {},
+ userDetails:
+ (localStorage.getItem("USER_DETAILS") &&
+ JSON.parse(localStorage.getItem("USER_DETAILS"))) ||
+ {},
+ statusByName: {},
+ teenybeansLanguages: [],
+ },
+ reducers: {
+ clearPurchaseCart: (state, action) => {
+ state.purchaseId = undefined;
+ localStorage.removeItem("PURCHASE_ID");
+ state.purchaseDetails = {};
+ state.userDetails = {};
+ localStorage.removeItem("USER_DETAILS");
+ /////////////////////////////////////////////
+ localStorage.removeItem("IS_USER_VERIFIED");
+ localStorage.removeItem("IS_EMAIL_OTP_SENT");
+ },
- saveUserDetails: (state, action) => {
- state.userDetails = action.payload;
- localStorage.setItem("USER_DETAILS", JSON.stringify(action.payload));
- },
- },
+ saveUserDetails: (state, action) => {
+ state.userDetails = action.payload;
+ localStorage.setItem("USER_DETAILS", JSON.stringify(action.payload));
+ },
+ },
- extraReducers: (builder) => {
- builder.addCase(getAkademyPlans.pending, (state, action) => {
- state.statusByName["plans"] = "pending";
- });
- builder.addCase(getAkademyPlans.fulfilled, (state, action) => {
- state.statusByName["plans"] = "fulfilled";
+ extraReducers: (builder) => {
+ builder.addCase(getAkademyPlans.pending, (state, action) => {
+ state.statusByName["plans"] = "pending";
+ });
+ builder.addCase(getAkademyPlans.fulfilled, (state, action) => {
+ state.statusByName["plans"] = "fulfilled";
- action.payload.data.map((plan) => {
- const { _id, products, productCategory } = plan;
- state.planDetails[_id] = plan;
- if (products && Array.isArray(products) && products.length == 1) {
- state.planPriceDetails[productCategory][products[0]] = plan;
- }
- });
- });
- builder.addCase(getAkademyPlans.rejected, (state, action) => {
- state.statusByName["plans"] = "rejected";
- });
+ action.payload.data.map((plan) => {
+ const { _id, products, productCategory } = plan;
+ state.planDetails[_id] = plan;
+ if (products && Array.isArray(products) && products.length == 1) {
+ state.planPriceDetails[productCategory][products[0]] = plan;
+ }
+ });
+ });
+ builder.addCase(getAkademyPlans.rejected, (state, action) => {
+ state.statusByName["plans"] = "rejected";
+ });
- builder.addCase(getAkademyClasses.pending, (state, action) => {
- state.statusByName["classes"] = "pending";
- });
- builder.addCase(getAkademyClasses.fulfilled, (state, action) => {
- state.statusByName["classes"] = "fulfilled";
- state.classes = ["IK3", "IK2", "IK1", "PG"]?.map((item) =>
- action.payload.data?.find((el) => el.name === item)
- );
- });
- builder.addCase(getAkademyClasses.rejected, (state, action) => {
- state.statusByName["classes"] = "rejected";
- });
+ builder.addCase(getAkademyClasses.pending, (state, action) => {
+ state.statusByName["classes"] = "pending";
+ });
+ builder.addCase(getAkademyClasses.fulfilled, (state, action) => {
+ state.statusByName["classes"] = "fulfilled";
+ state.classes = ["IK3", "IK2", "IK1", "PG"]?.map((item) =>
+ action.payload.data?.find((el) => el.name === item)
+ );
+ });
+ builder.addCase(getAkademyClasses.rejected, (state, action) => {
+ state.statusByName["classes"] = "rejected";
+ });
- builder.addCase(createPurchase.fulfilled, (state, action) => {
- const purchaseId = action.payload.data._id;
- state.purchaseId = purchaseId;
- localStorage.setItem("PURCHASE_ID", purchaseId);
- });
+ builder.addCase(createPurchase.fulfilled, (state, action) => {
+ const purchaseId = action.payload.data._id;
+ state.purchaseId = purchaseId;
+ localStorage.setItem("PURCHASE_ID", purchaseId);
+ });
- builder.addCase(getPurchaseDetails.fulfilled, (state, action) => {
- state.purchaseDetails = action.payload.data.data[0];
- });
- builder.addCase(getAllTeenybeansLanguages.fulfilled, (state, action) => {
- state.teenybeansLanguages = action.payload.data;
- });
- },
+ builder.addCase(getPurchaseDetails.fulfilled, (state, action) => {
+ state.purchaseDetails = action.payload.data.data[0];
+ console.log("lookData", action.payload);
+ });
+ builder.addCase(getAllTeenybeansLanguages.fulfilled, (state, action) => {
+ state.teenybeansLanguages = action.payload.data;
+ });
+ },
});
// Action creators are generated for each case reducer function
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index 281f907..34813ec 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -6,14 +6,26 @@ export interface Props {
ogImage: string;
ogUrl: string;
canonicalUrl: string;
+ newSchema1:string;
+ newSchema2:string;
+ newSchema3:string;
}
-const { title, description, keywords, ogImage, ogUrl, canonicalUrl } = Astro.props;
+const { title, description, keywords, ogImage, ogUrl, canonicalUrl, newSchema1, newSchema2, newSchema3 } = Astro.props;
---
+
+
+
@@ -30,6 +42,29 @@ const { title, description, keywords, ogImage, ogUrl, canonicalUrl } = Astro.pro
+ {newSchema1 && (
+
+ )}
+ {newSchema2 && (
+
+ )}{newSchema3 && (
+
+ )}
diff --git a/src/pages/blogs/[id].astro b/src/pages/blogs/[id].astro
index d95a3a5..8170219 100644
--- a/src/pages/blogs/[id].astro
+++ b/src/pages/blogs/[id].astro
@@ -36,6 +36,6 @@ export async function getStaticPaths() {
}
}
---
-
+
\ No newline at end of file
diff --git a/src/pages/blogs/index.astro b/src/pages/blogs/index.astro
index 490daef..d9108f7 100644
--- a/src/pages/blogs/index.astro
+++ b/src/pages/blogs/index.astro
@@ -15,6 +15,6 @@ try {
blogs = [];
}
---
-
+
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 3fa8f3f..0812eb3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -991,15 +991,15 @@
resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz"
integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==
-"@esbuild/linux-x64@0.21.5":
+"@esbuild/win32-x64@0.21.5":
version "0.21.5"
- resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz"
- integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
+ resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz"
+ integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
-"@esbuild/linux-x64@0.25.5":
+"@esbuild/win32-x64@0.25.5":
version "0.25.5"
- resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz"
- integrity sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==
+ resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz"
+ integrity sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==
"@eslint-community/eslint-utils@^4.2.0":
version "4.7.0"
@@ -1052,29 +1052,10 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz"
integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
-"@img/sharp-libvips-linux-x64@1.0.4":
- version "1.0.4"
- resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz"
- integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==
-
-"@img/sharp-libvips-linuxmusl-x64@1.0.4":
- version "1.0.4"
- resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz"
- integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==
-
-"@img/sharp-linux-x64@0.33.5":
+"@img/sharp-win32-x64@0.33.5":
version "0.33.5"
- resolved "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz"
- integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==
- optionalDependencies:
- "@img/sharp-libvips-linux-x64" "1.0.4"
-
-"@img/sharp-linuxmusl-x64@0.33.5":
- version "0.33.5"
- resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz"
- integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==
- optionalDependencies:
- "@img/sharp-libvips-linuxmusl-x64" "1.0.4"
+ resolved "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz"
+ integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==
"@isaacs/cliui@^8.0.2":
version "8.0.2"
@@ -1526,15 +1507,10 @@
estree-walker "^2.0.2"
picomatch "^4.0.2"
-"@rollup/rollup-linux-x64-gnu@4.42.0":
+"@rollup/rollup-win32-x64-msvc@4.42.0":
version "4.42.0"
- resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.42.0.tgz"
- integrity sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==
-
-"@rollup/rollup-linux-x64-musl@4.42.0":
- version "4.42.0"
- resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.42.0.tgz"
- integrity sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==
+ resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.42.0.tgz"
+ integrity sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==
"@shikijs/core@3.6.0":
version "3.6.0"