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 && (