cetirizine

An experimental matrix client written in reactjs utilizing tailwind and storybook
git clone git://archive.git.mtrnord.blog/MTRNord/cetirizine.git
Log | Files | Refs | README | LICENSE

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;