import React, { useState, useEffect } from "react"; import { FaUsers, FaAward, FaSave, FaTimesCircle, FaCalendarAlt, } from "react-icons/fa"; import { mockEmployees } from "../../../mocks/mockEmployees"; import { mockBadges } from "../../../mocks/mockBadges"; export interface BadgeAssignmentFormData { employeeId: string; badgeId: string; reason?: string; earnedDate: string; expiryDate?: string; notes?: string; } interface BadgeAssignmentModalProps { isOpen: boolean; onClose: () => void; onSubmit: (assignmentData: BadgeAssignmentFormData) => void; preSelectedEmployeeId?: string; preSelectedBadgeId?: string; } const BadgeAssignmentModal: React.FC = ({ isOpen, onClose, onSubmit, preSelectedEmployeeId, preSelectedBadgeId, }) => { const [formData, setFormData] = useState({ employeeId: "", badgeId: "", reason: "", earnedDate: new Date().toISOString().split("T")[0], expiryDate: "", notes: "", }); const [searchEmployee, setSearchEmployee] = useState(""); const [searchBadge, setSearchBadge] = useState(""); useEffect(() => { if (isOpen) { setFormData({ employeeId: preSelectedEmployeeId || "", badgeId: preSelectedBadgeId || "", reason: "", earnedDate: new Date().toISOString().split("T")[0], expiryDate: "", notes: "", }); setSearchEmployee(""); setSearchBadge(""); } }, [isOpen, preSelectedEmployeeId, preSelectedBadgeId]); const handleInputChange = ( e: React.ChangeEvent< HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement > ) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value, })); }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); onSubmit(formData); onClose(); }; const filteredEmployees = mockEmployees.filter( (employee) => employee.fullName.toLowerCase().includes(searchEmployee.toLowerCase()) || employee.code.toLowerCase().includes(searchEmployee.toLowerCase()) ); const filteredBadges = mockBadges.filter( (badge) => badge.isActive && (badge.name.toLowerCase().includes(searchBadge.toLowerCase()) || badge.description.toLowerCase().includes(searchBadge.toLowerCase())) ); const selectedEmployee = mockEmployees.find( (emp) => emp.id === formData.employeeId ); const selectedBadge = mockBadges.find( (badge) => badge.id === formData.badgeId ); return ( isOpen && (
{/* Header */}

Rozet Ata

Personele başarı rozeti atayın

{/* Form */}
{/* Sol Kolon - Personel Seçimi */}

Personel Seçimi

{selectedEmployee && (

{selectedEmployee.fullName}

{selectedEmployee.code} •{" "} {selectedEmployee.department?.name}

Email:{" "} {selectedEmployee.email}
)}
{/* Sağ Kolon - Rozet Seçimi */}

Rozet Seçimi

{selectedBadge && (
{selectedBadge.icon}

{selectedBadge.name}

{selectedBadge.description}

Puan:{" "} {selectedBadge.points}
Kategori:{" "} {selectedBadge.category}
Kriter:{" "} {selectedBadge.criteria}
)}
{/* Atama Detayları */}

Atama Detayları