"use client"; import { useState, useEffect } from "react"; import { Button } from "@/app/_components/GlobalComponents/UIElements/Button"; import { ChevronDown, User } from "lucide-react"; import { fetchAvailableUsers } from "@/app/_server/actions/cronjobs"; interface UserSwitcherProps { selectedUser: string; onUserChange: (user: string) => void; className?: string; } export const UserSwitcher = ({ selectedUser, onUserChange, className = "", }: UserSwitcherProps) => { const [users, setUsers] = useState([]); const [isOpen, setIsOpen] = useState(false); const [isLoading, setIsLoading] = useState(true); useEffect(() => { const loadUsers = async () => { try { const availableUsers = await fetchAvailableUsers(); setUsers(availableUsers); if (availableUsers.length > 0 && !selectedUser) { onUserChange(availableUsers[0]); } } catch (error) { console.error("Error loading users:", error); } finally { setIsLoading(false); } }; loadUsers(); }, [selectedUser, onUserChange]); if (isLoading) { return (
Loading users...
); } return (
{isOpen && (
{users.map((user) => ( ))}
)}
); };