import React, { useState, useEffect, useCallback } from 'react';
import { motion, AnimatePresence } from 'framer-motion';
import {
Users, Search, RefreshCw, Plus, Eye, Edit, Trash2, ChevronLeft, ChevronRight, X, User
} from 'lucide-react';
import styles from './UserManagement.module.css';
const UserManagement = ({
users,
usersLoading,
userPagination,
setUserPagination,
userFilter,
setUserFilter,
searchQuery,
setSearchQuery,
lastUpdate,
formatLastUpdate,
formatDate,
handleManualRefresh,
setShowAddUserModal,
setSelectedUser,
setShowUserModal,
setEditingUser,
deleteUser,
setIsFormActive
}) => {
return (
{}
User Management
Last updated: {formatLastUpdate(lastUpdate)}
{}
Name
Email
City
Phone
Status
Joined
Actions
{}
{usersLoading ? (
Array.from({length: userPagination.limit}).map((_,i) => (
{[...Array(8)].map((_,j) => (
))}
))
) : users.length > 0 ? (
users.map((user, index) => (
{user.email}
{user.recentCity}
{user.recentPhone}
{user.isActive ? 'Active' : 'Inactive'}
{formatDate(user?.createdAt)}
{ setSelectedUser(user); setShowUserModal(true); }}
>
{ setEditingUser(user); setShowUserModal(true); }}
>
deleteUser(user._id)}
>
))
) : (
{searchQuery ? 'No users found matching your search' : 'No users found'}
{searchQuery ? 'Try adjusting your search terms' : 'Users will appear here once they register'}
{searchQuery ? (
) : (
)}
)}
Page {userPagination.page} of {userPagination.pages}
);
};
export default UserManagement;