Commit 12339311 by Arjun Jhukal

updated the minor chagnes

parent b061cae3
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
"use client" "use client"
import GlassWrapper from '@/components/molecules/GlassWrapper' import GlassWrapper from '@/components/molecules/GlassWrapper'
import { useAppDispatch } from '@/hooks/hook'
import { setTokens } from '@/slice/authSlice'
import { restoreAuthFromCookies } from '@/utils/authSession' import { restoreAuthFromCookies } from '@/utils/authSession'
import Image from 'next/image' import Image from 'next/image'
import Link from 'next/link' import Link from 'next/link'
...@@ -13,17 +15,32 @@ export default function PaymentSuccess() { ...@@ -13,17 +15,32 @@ export default function PaymentSuccess() {
const params = useParams(); const params = useParams();
const slug = params?.slug as string; const slug = params?.slug as string;
const [isReady, setIsReady] = useState(false); const [isReady, setIsReady] = useState(false);
const dispatch = useAppDispatch();
useEffect(() => { useEffect(() => {
// Restore auth from cookies to localStorage
const wasRestored = restoreAuthFromCookies(); const wasRestored = restoreAuthFromCookies();
if (wasRestored) { if (wasRestored) {
window.location.reload(); // Manually hydrate Redux from localStorage (no reload needed)
return; const userStr = localStorage.getItem('user');
const token = localStorage.getItem('access_token');
if (userStr && token) {
try {
const user = JSON.parse(userStr);
dispatch(setTokens({
access_token: token,
user: user
}));
} catch (e) {
console.error('Failed to parse user data:', e);
}
}
} }
setIsReady(true); setIsReady(true);
}, []); }, [dispatch]);
if (!isReady) { if (!isReady) {
return ( return (
......
...@@ -35,11 +35,27 @@ export default function Private({ children }: { children: React.ReactNode }) { ...@@ -35,11 +35,27 @@ export default function Private({ children }: { children: React.ReactNode }) {
const wasRestored = restoreAuthFromCookies(); const wasRestored = restoreAuthFromCookies();
if (wasRestored) { if (wasRestored) {
window.location.reload(); // Manually hydrate Redux from localStorage
const userStr = localStorage.getItem('user');
const accessToken = localStorage.getItem('access_token');
if (userStr && accessToken) {
try {
const userData = JSON.parse(userStr);
dispatch(setTokens({
access_token: accessToken,
user: userData
}));
setIsHydrating(false);
return; return;
} catch (e) {
console.error('Failed to parse user data:', e);
}
}
} }
const accessToken = token || Cookies.get("access_token"); // Normal flow - check existing auth
const accessToken = token || Cookies.get("access_token") || localStorage.getItem('access_token');
if (!accessToken || isTokenExpired(accessToken)) { if (!accessToken || isTokenExpired(accessToken)) {
dispatch(clearTokens()); dispatch(clearTokens());
...@@ -47,8 +63,20 @@ export default function Private({ children }: { children: React.ReactNode }) { ...@@ -47,8 +63,20 @@ export default function Private({ children }: { children: React.ReactNode }) {
return; return;
} }
// If Redux was empty, rehydrate it
if (!token && accessToken) { if (!token && accessToken) {
dispatch(setTokens({ access_token: accessToken, user: user || null })); const userStr = localStorage.getItem('user');
let userData = user;
if (!userData && userStr) {
try {
userData = JSON.parse(userStr);
} catch (e) {
console.error('Failed to parse user:', e);
}
}
dispatch(setTokens({ access_token: accessToken, user: userData || null }));
} }
setIsHydrating(false); setIsHydrating(false);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment