import React, { useState, useEffect } from "react"; import { FaTimes, FaSave, FaExclamationTriangle, FaCheckCircle, FaTimesCircle, } from "react-icons/fa"; import { Team } from "../../../types/common"; interface TeamStatusChangeModalProps { isOpen: boolean; onClose: () => void; onSave: (teamIds: string[], newStatus: boolean, reason?: string) => void; selectedTeams: Team[]; } const TeamStatusChangeModal: React.FC = ({ isOpen, onClose, onSave, selectedTeams, }) => { const [newStatus, setNewStatus] = useState(true); const [reason, setReason] = useState(""); const [errors, setErrors] = useState>({}); const activeTeams = selectedTeams.filter((team) => team.isActive); const inactiveTeams = selectedTeams.filter((team) => !team.isActive); useEffect(() => { if (isOpen) { // Reset form when modal opens setNewStatus(true); setReason(""); setErrors({}); } }, [isOpen]); const validateForm = () => { const newErrors: Record = {}; if (!newStatus && !reason.trim()) { newErrors.reason = "Ekipleri pasif yaparken sebep belirtmeniz gerekli"; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const handleSave = () => { if (validateForm()) { const teamIds = selectedTeams.map((team) => team.id); onSave(teamIds, newStatus, reason.trim() || undefined); onClose(); } }; const getImpactAnalysis = () => { const teamsToActivate = newStatus ? inactiveTeams : []; const teamsToDeactivate = newStatus ? [] : activeTeams; return { teamsToActivate, teamsToDeactivate, totalMembers: selectedTeams.reduce( (total, team) => total + team.members.filter((m) => m.isActive).length, 0 ), activeMembers: activeTeams.reduce( (total, team) => total + team.members.filter((m) => m.isActive).length, 0 ), }; }; const impact = getImpactAnalysis(); return ( isOpen && (
{/* Header */}

Ekip Durumu Değiştir

{selectedTeams.length} ekibin durumunu değiştirin

{/* Content */}
{/* Status Selection */}

Yeni Durum

{/* Reason (required for deactivation) */} {!newStatus && (