import React, { useEffect, useState } from 'react';
import { motion } from 'framer-motion';
import { GitBranch, Video, Mail, Cloud, Puzzle, ArrowRight, ArrowLeft, LogOut } from 'lucide-react';
import { Link, useNavigate } from 'react-router-dom';
const services = [
{ title: "Git", url: "https://git.atakanzgn.com.tr", desc: "Projeler ve kod yönetimi.", icon: , color: "from-orange-400 to-red-500" },
{ title: "Meet", url: "https://meet.atakanzgn.com.tr", desc: "Güvenli video konferans.", icon: , color: "from-blue-400 to-indigo-500" },
{ title: "Mail", url: "https://mail.atakanzgn.com.tr", desc: "E-posta sunucusu.", icon: , color: "from-green-400 to-emerald-500" },
{ title: "Cloud", url: "https://cloud.atakanzgn.com.tr", desc: "Dosya depolama.", icon: , color: "from-cyan-400 to-blue-500" },
{ title: "n8n", url: "https://n8n.atakanzgn.com.tr", desc: "Otomasyon araçları.", icon: , color: "from-pink-400 to-rose-500" }
];
const containerVariants = {
hidden: { opacity: 0 },
visible: { opacity: 1, transition: { staggerChildren: 0.1 } }
};
const cardVariants = {
hidden: { y: 20, opacity: 0 },
visible: { y: 0, opacity: 1 }
};
export default function Portal() {
const navigate = useNavigate();
// Kullanıcı adını state'ten veya storage'dan alalım
const [user, setUser] = useState({ name: "Atakan" });
// Sayfa yüklendiğinde güvenlik kontrolü yap
useEffect(() => {
// Backend'den aldığımız token'ı kontrol ediyoruz
const token = sessionStorage.getItem('authToken');
const userData = sessionStorage.getItem('user');
if (!token) {
navigate('/'); // Token yoksa ana sayfaya at
}
if (userData) {
try {
setUser(JSON.parse(userData));
} catch (e) {
// JSON parse hatası olursa varsayılan kalır
}
}
}, [navigate]);
const handleLogout = () => {
sessionStorage.removeItem('authToken');
sessionStorage.removeItem('user');
navigate('/');
};
return (
Yönetim Portalı
{/* Kullanıcı adını dinamik gösterelim */}
Hoş geldin, {user.username || user.name || "Admin"}. Servisler aktif.
{services.map((service, index) => (
{service.title}
{service.desc}
))}
);
}