diff --git a/package-lock.json b/package-lock.json
index 90d6eed..dc1d1e0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -90,7 +90,6 @@
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.28.5",
@@ -451,7 +450,6 @@
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
"integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -495,7 +493,6 @@
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz",
"integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -1380,7 +1377,6 @@
"resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.5.tgz",
"integrity": "sha512-8VVxFmp1GIm9PpmnQoCoYo0UWHoOrdA57tDL62vkpzEgvb/d71Wsbv4FRg7r1Gyx7PuSo0tflH34cdl/NvfHNQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/runtime": "^7.28.4",
"@mui/core-downloads-tracker": "^7.3.5",
@@ -1514,7 +1510,6 @@
"resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.5.tgz",
"integrity": "sha512-yPaf5+gY3v80HNkJcPi6WT+r9ebeM4eJzrREXPxMt7pNTV/1eahyODO4fbH3Qvd8irNxDFYn5RQ3idHW55rA6g==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/runtime": "^7.28.4",
"@mui/private-theming": "^7.3.5",
@@ -2381,8 +2376,7 @@
}
],
"hasInstallScript": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/@tsparticles/interaction-external-attract": {
"version": "3.9.1",
@@ -3000,7 +2994,6 @@
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.4.tgz",
"integrity": "sha512-tBFxBp9Nfyy5rsmefN+WXc1JeW/j2BpBHFdLZbEVfs9wn3E3NRFxwV0pJg8M1qQAexFpvz73hJXFofV0ZAu92A==",
"license": "MIT",
- "peer": true,
"dependencies": {
"csstype": "^3.0.2"
}
@@ -3050,7 +3043,6 @@
"resolved": "https://registry.npmjs.org/@types/three/-/three-0.181.0.tgz",
"integrity": "sha512-MLF1ks8yRM2k71D7RprFpDb9DOX0p22DbdPqT/uAkc6AtQXjxWCVDjCy23G9t1o8HcQPk7woD2NIyiaWcWPYmA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@dimforge/rapier3d-compat": "~0.12.0",
"@tweenjs/tween.js": "~23.1.3",
@@ -3323,7 +3315,6 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"license": "MIT",
- "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -3600,7 +3591,6 @@
}
],
"license": "MIT",
- "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.8.25",
"caniuse-lite": "^1.0.30001754",
@@ -4020,8 +4010,7 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/d3-array": {
"version": "3.2.4",
@@ -4149,7 +4138,6 @@
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
"integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"license": "MIT",
- "peer": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/kossnocorp"
@@ -4264,8 +4252,7 @@
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz",
"integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==",
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/embla-carousel-react": {
"version": "8.6.0",
@@ -4442,7 +4429,6 @@
"integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -6074,7 +6060,6 @@
"resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.18.0.tgz",
"integrity": "sha512-FYZZqD0UUHUswKz3LQl2Z7H24AhD14XGTsIRw3SJaXUxyfVMi+1yiZGmqTcPt/CkPpdU7rrxqcyQ1zJE5DjvIQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/runtime": "^7.17.8",
"@types/react-reconciler": "^0.26.7",
@@ -6157,7 +6142,6 @@
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
"integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
"license": "MIT",
- "peer": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/kossnocorp"
@@ -6753,7 +6737,6 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -6862,7 +6845,6 @@
}
],
"license": "MIT",
- "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -7115,7 +7097,6 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz",
"integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==",
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7125,7 +7106,6 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz",
"integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
@@ -7223,7 +7203,6 @@
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
"integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/use-sync-external-store": "^0.0.6",
"use-sync-external-store": "^1.4.0"
@@ -7450,8 +7429,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
"integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/redux-thunk": {
"version": "3.1.0",
@@ -7681,7 +7659,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -7881,7 +7858,6 @@
"resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.19.tgz",
"integrity": "sha512-1v/e3Dl1BknC37cXMhwGomhO8AkYmN41CqyX9xhUDxry1ns3BFQy2lLDRQXJRdVVWB9OHemv/53xaStimvWyuA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@emotion/is-prop-valid": "1.2.2",
"@emotion/unitless": "0.8.1",
@@ -8424,7 +8400,6 @@
"resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz",
"integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.5.0",
@@ -8577,7 +8552,6 @@
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz",
"integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
"@webpack-cli/configtest": "^1.2.0",
@@ -8740,7 +8714,6 @@
"integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
diff --git a/src/assets/images/god1.png b/src/assets/images/god1.png
new file mode 100644
index 0000000..0eed20f
Binary files /dev/null and b/src/assets/images/god1.png differ
diff --git a/src/assets/images/greenbg2.jpg b/src/assets/images/greenbg2.jpg
new file mode 100644
index 0000000..8a30de8
Binary files /dev/null and b/src/assets/images/greenbg2.jpg differ
diff --git a/src/assets/images/greenbg3.jpg b/src/assets/images/greenbg3.jpg
new file mode 100644
index 0000000..34c25bc
Binary files /dev/null and b/src/assets/images/greenbg3.jpg differ
diff --git a/src/assets/images/greenbg4.jpg b/src/assets/images/greenbg4.jpg
new file mode 100644
index 0000000..f93b40f
Binary files /dev/null and b/src/assets/images/greenbg4.jpg differ
diff --git a/src/assets/images/perumal.png b/src/assets/images/perumal.png
new file mode 100644
index 0000000..b16d62b
Binary files /dev/null and b/src/assets/images/perumal.png differ
diff --git a/src/assets/images/sliderbg1.jpg b/src/assets/images/sliderbg1.jpg
new file mode 100644
index 0000000..707c212
Binary files /dev/null and b/src/assets/images/sliderbg1.jpg differ
diff --git a/src/assets/images/temple.jpg b/src/assets/images/temple.jpg
new file mode 100644
index 0000000..457356e
Binary files /dev/null and b/src/assets/images/temple.jpg differ
diff --git a/src/assets/images/temple.png b/src/assets/images/temple.png
new file mode 100644
index 0000000..5666a0c
Binary files /dev/null and b/src/assets/images/temple.png differ
diff --git a/src/components/auth/LoginPanel.jsx b/src/components/auth/LoginPanel.jsx
index 0577dd3..bee276b 100644
--- a/src/components/auth/LoginPanel.jsx
+++ b/src/components/auth/LoginPanel.jsx
@@ -174,8 +174,8 @@ const LoginPanel = () => {
const navigate = useNavigate();
const [formData, setFormData] = useState({
- emailOrMobile: '',
- password: '',
+ emailOrMobile: 'admin@gmail.com',
+ password: 'Password@123',
keepLoggedIn: false,
})
@@ -222,7 +222,11 @@ const LoginPanel = () => {
setLoading(false)
setSuccessModal(true) // Show success modal
console.log('Form Data:', formData)
+ localStorage.setItem("token", "dummy-token");
+ navigate("/dashboard-home");
}, 1500)
+
+
}
const handleCloseSuccessModal = () => {
diff --git a/src/components/common/Footer.jsx b/src/components/common/Footer.jsx
index 064d969..866dd1c 100644
--- a/src/components/common/Footer.jsx
+++ b/src/components/common/Footer.jsx
@@ -1,4 +1,5 @@
-import { Facebook, Instagram, Linkedin, Twitter, Youtube } from 'lucide-react';
+import { Facebook, Instagram, Linkedin, Twitter, Youtube } from "lucide-react";
+import { Link } from "react-router-dom";
export default function Footer() {
return (
@@ -7,15 +8,66 @@ export default function Footer() {
{/* Need Help Section */}
-
Need Help?
+
+ Need Help?
+
@@ -23,22 +75,87 @@ export default function Footer() {
{/* Privacy & You Section */}
-
Privacy & You
+
+ Privacy & You
+
@@ -46,48 +163,78 @@ export default function Footer() {
{/* Social Media & Apps Section */}
-
Find us on:
+
+ Find us on:
+
-
Get the Thirukalyanam App
+
+ Get the Thirukalyanam App
+
-
-
@@ -104,16 +251,18 @@ export default function Footer() {
{/* Bottom Copyright Section */}
-
- © 1991-{new Date().getFullYear()} Thirukalyanam, The World's Leading Matchmaking Service™
-
+
+ © {new Date().getFullYear()} Thirukalyanam, The World's
+ Leading Matchmaking Service™
+
- Passionately created by Amrithaa
+ Passionately created by{" "}
+ Amrithaa
);
-}
\ No newline at end of file
+}
diff --git a/src/components/common/ProfileHeader.jsx b/src/components/common/ProfileHeader.jsx
index 0e306e1..bd5df70 100644
--- a/src/components/common/ProfileHeader.jsx
+++ b/src/components/common/ProfileHeader.jsx
@@ -18,14 +18,16 @@ import Modal from "@mui/material/Modal";
import Button from "@mui/material/Button";
import LazyImage from "./LazyImage";
import Logo from "../../assets/images/logo.png";
-import { useNavigate } from "react-router-dom";
+import { useLocation, useNavigate } from "react-router-dom";
import { useState, useRef, useEffect } from "react";
import { useTheme, useMediaQuery, ListItemIcon } from "@mui/material";
import { Home, Users, Heart, MessageCircle, Search, Bell } from "lucide-react";
-
+import { isAuthenticated } from "../../utills/auth";
+import userimg from "../../assets/images/bride1.jpg"
const NAV_LINKS = [
- { label: "Home", path: "/" },
+ // { label: "Home", path: "/" },
{ label: "Matches", path: "/matches" },
+ // { label: "ProfileCard", path: "/profile-card" },
{ label: "Interest", path: "/interest" },
{ label: "Horoscope", path: "/horoscoper-generate" },
{ label: "Messages", path: "/chat" },
@@ -53,17 +55,13 @@ const ACCOUNT_SETTINGS = [
{ label: "Logout", action: "logout" }
];
-const SparkleNavbar = ({ items, color = "#0fec1eff", onItemClick }) => {
+const SparkleNavbar = ({ items, color = "#0fec1eff", onItemClick, activeItem }) => {
const [activeIndex, setActiveIndex] = useState(0);
const [indicatorStyle, setIndicatorStyle] = useState({});
const [isAnimating, setIsAnimating] = useState(false);
const navRef = useRef(null);
const buttonRefs = useRef([]);
- useEffect(() => {
- updateIndicator(activeIndex);
- }, []);
-
const updateIndicator = (index) => {
const button = buttonRefs.current[index];
if (button && navRef.current) {
@@ -76,20 +74,37 @@ const SparkleNavbar = ({ items, color = "#0fec1eff", onItemClick }) => {
}
};
+ // sync with activeItem from router
+ useEffect(() => {
+ if (!activeItem) return;
+ const newIndex = items.indexOf(activeItem);
+ if (newIndex !== -1 && newIndex !== activeIndex) {
+ setActiveIndex(newIndex);
+ updateIndicator(newIndex);
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [activeItem, items]);
+
+ // initial indicator
+ useEffect(() => {
+ updateIndicator(activeIndex);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
const handleClick = (index) => {
if (index === activeIndex || isAnimating) return;
setIsAnimating(true);
const newButton = buttonRefs.current[index];
-
+
if (newButton && navRef.current) {
const navRect = navRef.current.getBoundingClientRect();
const newRect = newButton.getBoundingClientRect();
-
- setIndicatorStyle(prev => ({
+
+ setIndicatorStyle((prev) => ({
...prev,
- left: newRect.left - navRect.left + newRect.width / 2 - 18,
+ left: newRect.left - navRect.left + newRect.width / 2 - 18
}));
-
+
setTimeout(() => {
setActiveIndex(index);
setIsAnimating(false);
@@ -103,28 +118,23 @@ const SparkleNavbar = ({ items, color = "#0fec1eff", onItemClick }) => {
{items.map((item, index) => (
))}
-
+
@@ -132,7 +142,9 @@ const SparkleNavbar = ({ items, color = "#0fec1eff", onItemClick }) => {
};
const ProfileHeader = () => {
+ const auth = isAuthenticated();
const navigate = useNavigate();
+ const location = useLocation();
const [mobileDrawerOpen, setMobileDrawerOpen] = useState(false);
const [profileDrawerOpen, setProfileDrawerOpen] = useState(false);
const [deleteModalOpen, setDeleteModalOpen] = useState(false);
@@ -145,6 +157,14 @@ const ProfileHeader = () => {
const toggleProfileDrawer = (open) => () => setProfileDrawerOpen(open);
const [selectedItem, setSelectedItem] = useState("Home");
+ const currentNav = NAV_LINKS.find(link =>
+ location.pathname.startsWith(link.path)
+ );
+
+ const currentLabel = currentNav?.label ?? NAV_LINKS[0].label;
+
+
+
const handleMenuClick = (item) => {
if (item.action === "delete") {
@@ -273,11 +293,11 @@ const ProfileHeader = () => {
-
+ navigate("/")} sx={{ display: { xs: "none", md: "flex" }, mr: 1 }}>
navigate("/")}
+
/>
@@ -294,6 +314,7 @@ const ProfileHeader = () => {
@@ -301,6 +322,7 @@ const ProfileHeader = () => {
link.label)}
color="#034E08"
+ activeItem={currentLabel}
onItemClick={(item) => {
setSelectedItem(item);
const link = NAV_LINKS.find(l => l.label === item);
@@ -309,13 +331,21 @@ const ProfileHeader = () => {
/>
-
+ {(auth ? (
+
-
+
+
+
+ ):( ))}
+
+
+
diff --git a/src/components/profiledashboard/AstroChatUI.jsx b/src/components/profiledashboard/AstroChatUI.jsx
index 43ecd87..1fe8238 100644
--- a/src/components/profiledashboard/AstroChatUI.jsx
+++ b/src/components/profiledashboard/AstroChatUI.jsx
@@ -1,5 +1,7 @@
+import { useNavigate } from "react-router-dom";
import girlchat from "../../assets/images/girlchat.webp"
const AstroChatUI = () => {
+ const navigate = useNavigate();
return (
<>
@@ -26,7 +28,7 @@ const AstroChatUI = () => {
Astro
- FreeChart
+ Horoscope
@@ -70,8 +72,10 @@ const AstroChatUI = () => {
{/* CTA Button */}
-