import React, { useEffect } from 'react';
import { BrowserRouter as Router, Routes, Route, Navigate, useNavigate, useLocation } from 'react-router-dom';
import { AlertTriangle } from 'lucide-react';
import LandingPage from './pages/LandingPage';
import LoginPage from './pages/LoginPage';
import RegisterPage from './pages/RegisterPage';
import Dashboard from './pages/Dashboard';
import './index.css';
// Wrapper component to handle auto-redirect for logged-in users
const AuthRedirect = ({ children, redirectTo }) => {
const navigate = useNavigate();
const location = useLocation();
useEffect(() => {
const userData = localStorage.getItem('hilmanhost_user');
const isMaintenance = localStorage.getItem('hilmanhost_maintenance') === 'true';
if (userData) {
try {
const user = JSON.parse(userData);
if (user && user.id && !user.banned) {
// If maintenance is on and user is not admin, they should go to maintenance page
if (isMaintenance && user.role !== 'admin' && location.pathname !== '/maintenance') {
navigate('/maintenance', { replace: true });
return;
}
// User is logged in, redirect to dashboard if they are on landing/login/register
if (location.pathname === '/' || location.pathname === '/login' || location.pathname === '/register') {
navigate(redirectTo || '/dashboard', { replace: true });
}
}
} catch (e) {
localStorage.removeItem('hilmanhost_user');
}
} else if (isMaintenance && location.pathname !== '/maintenance' && location.pathname !== '/login') {
// Not logged in and maintenance is on
navigate('/maintenance', { replace: true });
}
}, [location.pathname]);
return children;
};
function App() {
// Track online status
useEffect(() => {
const userData = localStorage.getItem('hilmanhost_user');
if (userData) {
try {
const user = JSON.parse(userData);
if (user?.id) {
// Set online status
localStorage.setItem(`hilmanhost_online_${user.id}`, Date.now().toString());
const heartbeat = setInterval(() => {
localStorage.setItem(`hilmanhost_online_${user.id}`, Date.now().toString());
}, 10000);
// Clean up on unload
const onUnload = () => {
localStorage.removeItem(`hilmanhost_online_${user.id}`);
};
window.addEventListener('beforeunload', onUnload);
return () => {
clearInterval(heartbeat);
window.removeEventListener('beforeunload', onUnload);
};
}
} catch (e) {}
}
}, []);
return (
Size daha iyi hizmet verebilmek için kısa süreli bir bakım çalışması yapıyoruz. Lütfen daha sonra tekrar deneyiniz.