()
| 3 | import { useChatStore } from "../store/useChatStore"; |
| 4 | |
| 5 | const ChatHeader = () => { |
| 6 | const { selectedUser, setSelectedUser } = useChatStore(); |
| 7 | const { onlineUsers } = useAuthStore(); |
| 8 | |
| 9 | return ( |
| 10 | <div className="p-2.5 border-b border-base-300"> |
| 11 | <div className="flex items-center justify-between"> |
| 12 | <div className="flex items-center gap-3"> |
| 13 | {/* Avatar */} |
| 14 | <div className="avatar"> |
| 15 | <div className="size-10 rounded-full relative"> |
| 16 | <img src={selectedUser.profilePic || "/avatar.png"} alt={selectedUser.fullName} /> |
| 17 | </div> |
| 18 | </div> |
| 19 | |
| 20 | {/* User info */} |
| 21 | <div> |
| 22 | <h3 className="font-medium">{selectedUser.fullName}</h3> |
| 23 | <p className="text-sm text-base-content/70"> |
| 24 | {onlineUsers.includes(selectedUser._id) ? "Online" : "Offline"} |
| 25 | </p> |
| 26 | </div> |
| 27 | </div> |
| 28 | |
| 29 | {/* Close button */} |
| 30 | <button onClick={() => setSelectedUser(null)}> |
| 31 | <X /> |
| 32 | </button> |
| 33 | </div> |
| 34 | </div> |
| 35 | ); |
| 36 | }; |
| 37 | export default ChatHeader; |
nothing calls this directly
no outgoing calls
no test coverage detected