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

unknownEvent.tsx (3654B)


      1 import { memo } from "react";
      2 import { IRoomEvent } from "../../app/sdk/api/events";
      3 import { FC } from "react";
      4 import Linkify from "linkify-react";
      5 import { OnlineState } from "../../app/sdk/api/otherEnums";
      6 import { Room } from "../../app/sdk/room";
      7 import { MessageWrapper } from "./wrapper";
      8 
      9 type UnknownEventProps = {
     10     /**
     11      * The event to render
     12      */
     13     event: IRoomEvent;
     14     /**
     15      * The room of the event to display
     16      */
     17     room?: Room;
     18     /**
     19      * If the previous event was sent by the same user
     20      */
     21     hasPreviousEvent?: boolean;
     22 };
     23 
     24 const linkifyOptions = {
     25     defaultProtocol: "https",
     26     rel: "noopener",
     27     target: "_blank",
     28     className: "text-blue-500 hover:text-blue-700 active:text-blue-700 visited:text-blue-500"
     29 }
     30 
     31 const UnknownEvent: FC<UnknownEventProps> = memo(({ event, room, hasPreviousEvent }) => {
     32     return (
     33         <MessageWrapper
     34             displayname={room?.getMemberName(event.sender) || event.sender}
     35             avatar_url={room?.getMemberAvatar(event.sender) || ""}
     36             onlineState={room?.presence || OnlineState.Unknown}
     37             isBot={room?.isBot(event.sender) || false}
     38             dm={room?.isDM() || false}
     39             hasPreviousEvent={hasPreviousEvent}
     40         >
     41             <Linkify options={linkifyOptions} as='p' className="whitespace-break-spaces text-black text-base font-normal">{JSON.stringify(event, null, 4)}</Linkify>
     42         </MessageWrapper>
     43     )
     44 });
     45 
     46 export default UnknownEvent;
     47 
     48 type UndecryptableEventProps = {
     49     /**
     50      * The event to render
     51      */
     52     event: IRoomEvent;
     53     /**
     54      * The room of the event to display
     55      */
     56     room?: Room;
     57     /**
     58      * If the previous event was sent by the same user
     59      */
     60     hasPreviousEvent?: boolean;
     61 };
     62 
     63 export const UndecryptableEvent: FC<UndecryptableEventProps> = memo(({ event, room, hasPreviousEvent }) => {
     64     return (
     65         <MessageWrapper
     66             displayname={room?.getMemberName(event.sender) || event.sender}
     67             avatar_url={room?.getMemberAvatar(event.sender) || ""}
     68             onlineState={room?.presence || OnlineState.Unknown}
     69             isBot={room?.isBot(event.sender) || false}
     70             dm={room?.isDM() || false}
     71             hasPreviousEvent={hasPreviousEvent}
     72         >
     73             <Linkify options={linkifyOptions} as='p' className="whitespace-pre-wrap text-base font-normal text-orange-600">Unable to decrypt event</Linkify>
     74         </MessageWrapper>
     75     )
     76 });
     77 
     78 type RedactedEventProps = {
     79     /**
     80      * The original event
     81      */
     82     event: IRoomEvent;
     83     /**
     84      * The event to render
     85      */
     86     redacted_because?: string;
     87     /**
     88      * The room of the event to display
     89      */
     90     room?: Room;
     91     /**
     92      * If the previous event was sent by the same user
     93      */
     94     hasPreviousEvent?: boolean;
     95 };
     96 
     97 export const RedactedEvent: FC<RedactedEventProps> = memo(({ event, redacted_because, room, hasPreviousEvent }) => {
     98     return (
     99         <MessageWrapper
    100             displayname={room?.getMemberName(event.sender) || event.sender}
    101             avatar_url={room?.getMemberAvatar(event.sender) || ""}
    102             onlineState={room?.presence || OnlineState.Unknown}
    103             isBot={room?.isBot(event.sender) || false}
    104             dm={room?.isDM() || false}
    105             hasPreviousEvent={hasPreviousEvent}
    106         >
    107             {redacted_because && <p className="whitespace-pre-wrap text-base font-normal text-blue-600 italic">Message was redacted: {redacted_because}</p>}
    108             {!redacted_because && <p className="whitespace-pre-wrap text-base font-normal text-blue-600 italic">Message was redacted</p>}
    109         </MessageWrapper>
    110     )
    111 });
    112