import React from "react"; import { useModalStore } from "../../../stores/modalStore.js"; import { usePresenceStore } from "../../../stores/presenceStore.js"; export function StatusSelectorModal() { const { isOpen, type, onClose } = useModalStore(); const { currentStatus, setStatus } = usePresenceStore(); const isModalOpen = isOpen && type === "statusSelector"; if (!isModalOpen) return null; const statuses = [ { value: "online", label: "Online", icon: "🟢", description: "Available to chat" }, { value: "idle", label: "Idle", icon: "🟡", description: "Away from keyboard" }, { value: "dnd", label: "Do Not Disturb", icon: "🔴", description: "Focused - no notifications" }, { value: "invisible", label: "Invisible", icon: "⚫", description: "Appear offline" }, ]; const handleStatusChange = (status) => { setStatus(status); onClose(); }; return (
e.stopPropagation()} style={{ background: "#1a1a1a", border: "1px solid #2a2a2a", borderRadius: "8px", width: "280px", boxShadow: "0 8px 32px rgba(0,0,0,0.4)", }} >

Set Status

{statuses.map((status) => (
handleStatusChange(status.value)} style={{ padding: "12px", borderRadius: "4px", cursor: "pointer", background: currentStatus === status.value ? "#0066ff20" : "transparent", transition: "background 0.2s", marginBottom: "4px", }} onMouseEnter={(e) => { if (currentStatus !== status.value) { e.currentTarget.style.background = "#2a2a2a"; } }} onMouseLeave={(e) => { if (currentStatus !== status.value) { e.currentTarget.style.background = "transparent"; } }} >
{status.icon} {status.label}
{status.description}
))} {/* Custom Status Button */}
{ onClose(); setTimeout(() => { const { onOpen } = useModalStore.getState(); onOpen("customStatus"); }, 100); }} style={{ padding: "12px", borderRadius: "4px", cursor: "pointer", background: "transparent", borderTop: "1px solid #2a2a2a", marginTop: "8px", paddingTop: "16px", color: "#0066ff", fontWeight: "500", textAlign: "center", transition: "background 0.2s", }} onMouseEnter={(e) => { e.currentTarget.style.background = "#2a2a2a"; }} onMouseLeave={(e) => { e.currentTarget.style.background = "transparent"; }} > ✏️ Set Custom Status
); }