Fix admin panel authentication and navigation for static export

- Replace router.push with window.location.href for reliable redirects
- Fix auth check to wait for component mount before accessing localStorage
- Ensure proper redirect after successful login
- Fix redirect behavior on all admin pages (dashboard, colors, requests)
This commit is contained in:
DaX
2025-10-31 02:45:47 +01:00
parent c0ca1e4bb3
commit d3e001707b
4 changed files with 16 additions and 10 deletions

View File

@@ -53,13 +53,16 @@ export default function ColorsManagement() {
// Check authentication
useEffect(() => {
// Wait for component to mount to avoid SSR issues with localStorage
if (!mounted) return;
const token = localStorage.getItem('authToken');
const expiry = localStorage.getItem('tokenExpiry');
if (!token || !expiry || Date.now() > parseInt(expiry)) {
router.push('/upadaj');
window.location.href = '/upadaj';
}
}, [router]);
}, [mounted]);
// Fetch colors
const fetchColors = async () => {

View File

@@ -123,13 +123,16 @@ export default function AdminDashboard() {
// Check authentication
useEffect(() => {
// Wait for component to mount to avoid SSR issues with localStorage
if (!mounted) return;
const token = localStorage.getItem('authToken');
const expiry = localStorage.getItem('tokenExpiry');
if (!token || !expiry || Date.now() > parseInt(expiry)) {
router.push('/upadaj');
window.location.href = '/upadaj';
}
}, [router]);
}, [mounted]);
// Fetch filaments
const fetchFilaments = async () => {

View File

@@ -32,8 +32,8 @@ export default function AdminLogin() {
// Track successful login
trackEvent('Admin', 'Login', 'Success');
// Redirect to admin dashboard
router.push('/upadaj/dashboard');
// Redirect to admin dashboard using window.location for static export
window.location.href = '/upadaj/dashboard';
} catch (err: any) {
setError('Neispravno korisničko ime ili lozinka');
console.error('Login error:', err);

View File

@@ -42,7 +42,7 @@ export default function ColorRequestsAdmin() {
const expiry = localStorage.getItem('tokenExpiry');
if (!token || !expiry || new Date().getTime() > parseInt(expiry)) {
router.push('/upadaj');
window.location.href = '/upadaj';
}
};