"use client"; import { useState, useEffect } from "react"; import { useDictionary } from "@/components/DictionaryContext"; interface User { id: string; name: string; email: string; role: string; domains: string[]; } export default function UsersPage() { const [users, setUsers] = useState([]); const [loading, setLoading] = useState(true); const [search, setSearch] = useState(""); const dict = useDictionary(); useEffect(() => { fetch("/api/users") .then((r) => r.json()) .then((data) => { setUsers(Array.isArray(data) ? data : []); setLoading(false); }) .catch(() => setLoading(false)); }, []); const filtered = users.filter( (u) => u.name.toLowerCase().includes(search.toLowerCase()) || u.email.toLowerCase().includes(search.toLowerCase()) ); return ( <>

{dict.users.title || "Kullanıcılar"}

{dict.users.subtitle || "Panel kullanıcıları .env dosyasından yönetilir"}

{/* Info card */}
{dict.users.info ? "Info" : "Kullanıcı yönetimi hakkında"}
{dict.users.info || ( <> Kullanıcılar .env dosyasındaki{" "} USER_0_*,{" "} USER_1_*… değişkenleriyle tanımlanır. Yeni kullanıcı eklemek için .env dosyasını düzenleyip uygulamayı yeniden başlatın. )}
USER_2_NAME="Ahmet Yılmaz"
USER_2_EMAIL="ahmet@ayristech.com"
USER_2_PASSWORD="güçlü-şifre"
USER_2_ROLE="DOMAIN_ADMIN"
USER_2_DOMAINS="yenidomain.com"
setSearch(e.target.value)} />
{loading ? (
) : filtered.length === 0 ? (
{dict.users.noUsers || "Kullanıcı bulunamadı"}
) : ( {filtered.map((u) => ( ))}
{dict.users.username || "Kullanıcı"} {dict.users.role || "Rol"} {dict.users.domains || "İzin Verilen Domainler"}
{u.name[0]?.toUpperCase()}
{u.name}
{u.email}
{u.role === "SUPER_ADMIN" ? `★ ${dict.users.superAdmin || "Süper Admin"}` : (dict.users.domainAdmin || "Domain Admin")} {u.domains.includes("*") ? ( {dict.users.allDomains || "Tüm domainler"} ) : (
{u.domains.map((d) => ( {d} ))}
)}
)}
); } function SearchIcon() { return ; } function UsersIcon() { return ; } function InfoIcon() { return ; }