Initial Changes

This commit is contained in:
2025-03-01 15:29:32 +05:30
parent 12caeee710
commit e4d8b2cf58
20 changed files with 330 additions and 175 deletions

View File

@@ -1,12 +1,27 @@
"use client";
import MainContext from "@/app/contexts/mainContext";
import { backendUrl, serAxios } from "@/utils/axios";
import Image from "next/image";
import React, { useContext, useState } from "react";
import React, { useContext, useEffect, useState } from "react";
const getAuthPageData = async () => {
// Fetch data from external API
try {
const res = await serAxios.get("/dynamic-ui/page/auth/");
const data = res.data;
return data.data;
} catch (error) {
console.error("Error fetching data:", error);
return null;
}
// Pass data to the page via props
};
const LoginSignup = () => {
const [isLogin, setIsLogin] = useState(true);
const { loginUser, registerUser } = useContext(MainContext);
const [loginPageData, setLoginPageData] = useState(null);
const [formData, setFormData] = useState({
email: "",
password: "",
@@ -34,12 +49,22 @@ const LoginSignup = () => {
setFormData({ email: "", password: "", confirmPassword: "" });
};
useEffect(() => {
getAuthPageData().then((data) => {
setLoginPageData(data);
});
}, []);
return (
<div className="flex h-screen bg-gray-100">
{/* Left section with video */}
<div className="hidden lg:flex lg:w-[60%] bg-cover bg-center">
<video
src="/loginvideo.mp4"
src={`${
loginPageData?.bannerVideo?.path
? backendUrl + loginPageData?.bannerVideo?.path
: "/loginvideo.mp4"
}`}
className="object-cover w-full h-full"
autoPlay
loop
@@ -130,13 +155,13 @@ const LoginSignup = () => {
</div>
</form>
<div className="text-center">
<h2 className="text-[#AC8C6B] font-semibold">
{/* <h2 className="text-[#AC8C6B] font-semibold">
Manage subscriptions
</h2>
<h2 className="text-xl my-3">or</h2>
</h2> */}
{/* <h2 className="text-xl my-3">or</h2>
<h2 className="capitalize border-2 px-5 py-3">
Continue with google
</h2>
</h2> */}
<button
onClick={toggleMode}
className="font-medium text-[#C19A5B] mt-10"

View File

@@ -13,48 +13,49 @@ export const ContextProvider = ({ children }) => {
const router = useRouter()
const [token, setToken] = useState(() => {
if (typeof window !== 'undefined' && localStorage.getItem('token')) {
return localStorage.getItem('token');
return localStorage.getItem('token');
}
return null;
});
});
const [isOtpSend, setIsOtpSend] = useState(false);
const backendUrl = process.env.NEXT_PUBLIC_BACKEND_URL;
const loginUser = async (credentials) => {
try {
const response = await axios.post(`${backendUrl}/account/login/`, credentials);
console.log("Login Successful:", response.data);
setToken(response.data.token)
localStorage.setItem('token',response.data.token)
toast.success('Login Successful');
localStorage.setItem('token', response.data.token)
toast.success('Otp Sent Successfully');
router.push('/')
return response.data
} catch (error) {
if (error.response) {
console.error("Error during login:", error.response.data);
const message = error.response.data.message || "Login failed. Please try again.";
toast.error(message);
} else if (error.request) {
console.error("No response during login:", error.request);
toast.error("Unable to connect to the server. Please try again later.");
} else {
console.error("Unexpected error during login:", error.message);
toast.error("An unexpected error occurred. Please try again.");
}
throw error;
throw error;
}
};
const registerUser = async (credentials) => {
try {
const response = await axios.post(`${backendUrl}/account/register/`, credentials);
console.log("Register Successful:", response.data);
setToken(response.data.token)
localStorage.setItem('token',response.data.token)
localStorage.setItem('token', response.data.token)
toast.success('Registration Successful');
router.push('/')
@@ -65,28 +66,29 @@ export const ContextProvider = ({ children }) => {
const message = error.response.data.message || "Registration failed. Please try again.";
toast.error(message);
} else if (error.request) {
console.error("No response during registration:", error.request);
toast.error("Unable to connect to the server. Please try again later.");
} else {
console.error("Unexpected error during registration:", error.message);
toast.error("An unexpected error occurred. Please try again.");
}
throw error;
throw error;
}
};
return (
<MainContext.Provider value={{
loginUser,
registerUser,
token,
setToken
setToken,
isOtpSend
}}>
{children}
</MainContext.Provider>
)
}
export default MainContext
export default MainContext

View File

@@ -12,6 +12,7 @@ export const metadata = {
description: "Powered by Rudraksha",
};
export default function RootLayout({ children }) {
return (
<html lang="en">
@@ -27,12 +28,12 @@ export default function RootLayout({ children }) {
<ContextProvider>
<CurrencyProvider>
<ProductContextProvider>
<NavigationWrapper />
{children}
<WrapperFooter />
</ProductContextProvider>
</CurrencyProvider>
<ProductContextProvider>
<NavigationWrapper />
{children}
<WrapperFooter />
</ProductContextProvider>
</CurrencyProvider>
</ContextProvider>
</body>
</html>

View File

@@ -4,16 +4,40 @@ import HeroSix from "@/components/hero-page/HeroSix";
import SecondGallery from "@/components/product-category/SecondGallery";
import BannerSlider from "@/components/sliders/BannerSlider";
import SliderTwo from "@/components/sliders/SliderTwo";
import { backendUrl, serAxios } from "@/utils/axios";
import { guranteeData, categories } from "@/utils";
export default function Home() {
const getDashboardData = async () => {
// Fetch data from external API
try {
const res = await serAxios.get('/dynamic-ui/page/dashboard/')
const data = res.data
return data.data
} catch (error) {
return null
}
// Pass data to the page via props
}
export default async function Home({ page }) {
const data = await getDashboardData();
return (
<>
<Hero />
<HeroFour />
<HeroSix />
<BannerSlider />
<Hero data={data ? data.images.map((image) => ({
type: "image",
src: `${backendUrl}${image.path}`,
})) : null} />
<HeroFour data={data} />
<HeroSix data={data} guranteeData={data?.org_item?.map((item, index) => ({
id: index,
title: item.title,
imageUrl: `${backendUrl}${item.image?.path}`,
})) ?? guranteeData} />
<BannerSlider data={data} categories={data?.discover_item?.map((item) => ({
title: item.title,
image: `${backendUrl}${item.image?.path}`,
})) ?? categories} />
<SliderTwo />
<SecondGallery />
<SecondGallery data={data} />
</>
);
}

View File

@@ -1,26 +1,62 @@
import PremiumBanner from '@/components/premium-rudraksha/PremiumBanner'
import PremiumBannerLast from '@/components/premium-rudraksha/PremiumBannerLast'
import PremiumBannerOne from '@/components/premium-rudraksha/PremiumBannerOne'
import PremiumBannerTwo from '@/components/premium-rudraksha/PremiumBannerTwo'
import PremuimBannerThree from '@/components/premium-rudraksha/PremuimBannerThree'
import React from 'react'
import PremiumBanner from "@/components/premium-rudraksha/PremiumBanner";
import PremiumBannerLast from "@/components/premium-rudraksha/PremiumBannerLast";
import PremiumBannerOne from "@/components/premium-rudraksha/PremiumBannerOne";
import PremiumBannerTwo from "@/components/premium-rudraksha/PremiumBannerTwo";
import PremuimBannerThree from "@/components/premium-rudraksha/PremuimBannerThree";
import { categoriesForPremiumThree, services } from "@/utils";
import { backendUrl, serAxios } from "@/utils/axios";
import React from "react";
export const metadata = {
title: "Premium Rudraksha Consultation Astrology",
description: "Generated by create next app",
};
const getConsultantPageData = async () => {
// Fetch data from external API
try {
const res = await serAxios.get("/dynamic-ui/page/consultation/");
const data = res.data;
return data.data;
} catch (error) {
console.error("Error fetching data:", error);
return null;
}
// Pass data to the page via props
};
const Page = () => {
async function Page() {
const data = await getConsultantPageData();
return (
<div>
<PremiumBanner />
<PremiumBannerOne />
<PremiumBannerTwo />
<PremuimBannerThree />
<PremiumBannerLast />
<PremiumBanner data={data} />
<PremiumBannerOne data={data} />
<PremiumBannerTwo data={data} />
<PremuimBannerThree
data={data}
categoriesForPremiumThree={
data?.consultation_reasons?.map((item, index) => ({
title: item.title,
description: item.description,
logo: (
<img src={`${backendUrl}${item.image?.path}`} alt={item.title} />
),
})) ?? categoriesForPremiumThree
}
/>
<PremiumBannerLast
services={data?.perks?.map((item) => ({
title: item.title,
description: item.description,
imageUrl: [
`${backendUrl}${item.image1?.path}`,
`${backendUrl}${item.image2?.path}`,
],
}))}
data={data}
/>
</div>
)
);
}
export default Page
export default Page;