memberEvent.tsx (1903B)
1 import { memo } from "react"; 2 import { IRoomMemberEvent } from "../../app/sdk/api/events"; 3 import { FC } from "react"; 4 5 type MemberEventProps = { 6 /** 7 * The event to render 8 */ 9 event: IRoomMemberEvent; 10 }; 11 12 const MemberEvent: FC<MemberEventProps> = memo(({ event }) => { 13 const renderCorrectMessage = (event: IRoomMemberEvent) => { 14 // TODO: Make sure we render avatar and name changes correctly 15 16 return <p className="p-2 hover:bg-gray-200 rounded-md duration-200 ease-in-out"> 17 { 18 event.content.displayname ? 19 event.content.displayname : 20 event.state_key 21 } { 22 event.content.membership === "join" ? 23 "joined the room" : 24 ( 25 event.content.membership === "leave" ? 26 // TODO: Handle kick 27 "left the room" : 28 ( 29 event.content.membership === "ban" ? 30 "was banned from the room by " + event.sender : 31 ( 32 event.content.membership === "invite" ? 33 "was invited to the room by " + event.sender : 34 ( 35 event.content.membership === "knock" ? 36 "knocked on the room" : 37 "changed their membership status to " + event.content.membership 38 ) 39 ) 40 ) 41 ) 42 } 43 </p> 44 } 45 46 return renderCorrectMessage(event); 47 }); 48 49 export default MemberEvent;