import React, { useState } from 'react'; import { useMockStore } from '../../data/mockStore'; import { Search, Filter, Shield, User, Briefcase, Zap } from 'lucide-react'; import MaskedData from '../../components/MaskedData'; import ComplianceChecklist from '../../components/people/ComplianceChecklist'; import { SpotlightCard } from '../../components/SpotlightCard'; const PeopleDirectory = () => { const { personnel, vendors } = useMockStore(); const [filter, setFilter] = useState('all'); // all, employee, contractor, subcontractor const [search, setSearch] = useState(''); const [selectedPerson, setSelectedPerson] = useState(null); // Combine and normalize data for display const allPeople = [ ...personnel.map(p => ({ ...p, type: 'personnel', category: 'Internal Team' })), ...vendors.map(v => ({ ...v, name: v.vendorName, type: 'vendor', category: 'Vendor/Partner' })) ]; const filteredPeople = allPeople.filter(person => { const matchesSearch = person.name.toLowerCase().includes(search.toLowerCase()) || person.email?.toLowerCase().includes(search.toLowerCase()); if (filter === 'all') return matchesSearch; if (filter === 'employee') return matchesSearch && person.type === 'personnel'; if (filter === 'contractor') return matchesSearch && person.role === 'CONTRACTOR'; // Assuming role field exists if (filter === 'subcontractor') return matchesSearch && person.role === 'SUBCONTRACTOR'; // Assuming role field exists return matchesSearch; }); return (
Manage your team, contractors, and compliance records.
{person.role || person.vendorType}
Select an employee, contractor, or vendor from the list to view their detailed profile.