diff --git a/src/View/Components/infoTile.tsx b/src/View/Components/infoTile.tsx new file mode 100644 index 00000000..4c5e3223 --- /dev/null +++ b/src/View/Components/infoTile.tsx @@ -0,0 +1,18 @@ +import * as React from "bloatless-react"; + +export function InfoTile(icon: string, label: string, content: string|React.State) { + let contentState: React.State + if (typeof content == "string") { + contentState = new React.State(content); + } else { + contentState = content; + } + + return
+ {icon} +
+ {label} + +
+
; +} diff --git a/src/View/Modals/chatMessageInfoModal.tsx b/src/View/Modals/chatMessageInfoModal.tsx index 5060f075..cad1c1d6 100644 --- a/src/View/Modals/chatMessageInfoModal.tsx +++ b/src/View/Modals/chatMessageInfoModal.tsx @@ -3,6 +3,7 @@ import * as React from "bloatless-react"; import ChatMessageViewModel from "../../ViewModel/Chat/chatMessageViewModel"; import { translations } from "../translations"; import { MessageReactionButtonRow } from "../Components/messageReactionButtonRow"; +import { InfoTile } from "../Components/infoTile"; export function ChatMessageInfoModal( chatMessageViewModel: ChatMessageViewModel, @@ -17,59 +18,10 @@ export function ChatMessageInfoModal(

{translations.chatPage.message.messageInfoHeadline}

-
- account_circle -
- - {translations.chatPage.message.sentBy} - - - {chatMessageViewModel.sender} - -
-
- -
- schedule -
- - {translations.chatPage.message.timeSent} - - - {chatMessageViewModel.dateSent} - -
-
- -
- forum -
- - {translations.chatPage.message.channel} - - - {chatMessageViewModel.channel} - -
-
- -
- description -
- - { - translations.chatPage.message - .messageContent - } - - -
-
+ {InfoTile("account_circle", translations.chatPage.message.sentBy, chatMessageViewModel.sender)} + {InfoTile("schedule", translations.chatPage.message.timeSent, chatMessageViewModel.dateSent)} + {InfoTile("forum", translations.chatPage.message.channel, chatMessageViewModel.channel)} + {InfoTile("description", translations.chatPage.message.messageContent, chatMessageViewModel.body)}