2024-07-21 13:13:41 +02:00
|
|
|
import * as React from "bloatless-react";
|
|
|
|
|
|
2024-07-22 21:07:44 +02:00
|
|
|
import ChatMessageViewModel from "../../ViewModel/Chat/chatMessageViewModel";
|
2024-07-21 13:13:41 +02:00
|
|
|
import { translations } from "../translations";
|
2026-04-07 19:13:29 +00:00
|
|
|
import { MessageReactionButtonRow } from "../Components/messageReactionButtonRow";
|
2024-07-21 13:13:41 +02:00
|
|
|
|
|
|
|
|
export function ChatMessageInfoModal(
|
2026-04-01 08:29:39 +00:00
|
|
|
chatMessageViewModel: ChatMessageViewModel,
|
2024-07-21 13:13:41 +02:00
|
|
|
) {
|
2026-04-01 08:29:39 +00:00
|
|
|
return (
|
|
|
|
|
<div
|
|
|
|
|
class="modal"
|
|
|
|
|
toggle:open={chatMessageViewModel.isPresentingInfoModal}
|
|
|
|
|
>
|
|
|
|
|
<div>
|
|
|
|
|
<main>
|
|
|
|
|
<h2>{translations.chatPage.message.messageInfoHeadline}</h2>
|
2024-07-21 13:13:41 +02:00
|
|
|
|
2026-04-01 08:29:39 +00:00
|
|
|
<div class="flex-column gap">
|
|
|
|
|
<div class="tile">
|
|
|
|
|
<span class="icon">account_circle</span>
|
|
|
|
|
<div>
|
|
|
|
|
<span>
|
|
|
|
|
{translations.chatPage.message.sentBy}
|
|
|
|
|
</span>
|
|
|
|
|
<b class="break-word">
|
|
|
|
|
{chatMessageViewModel.sender}
|
|
|
|
|
</b>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-07-21 13:13:41 +02:00
|
|
|
|
2026-04-01 08:29:39 +00:00
|
|
|
<div class="tile">
|
|
|
|
|
<span class="icon">schedule</span>
|
|
|
|
|
<div>
|
|
|
|
|
<span>
|
|
|
|
|
{translations.chatPage.message.timeSent}
|
|
|
|
|
</span>
|
|
|
|
|
<b class="break-word">
|
|
|
|
|
{chatMessageViewModel.dateSent}
|
|
|
|
|
</b>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-07-21 13:13:41 +02:00
|
|
|
|
2026-04-01 08:29:39 +00:00
|
|
|
<div class="tile">
|
|
|
|
|
<span class="icon">forum</span>
|
|
|
|
|
<div>
|
|
|
|
|
<span>
|
|
|
|
|
{translations.chatPage.message.channel}
|
|
|
|
|
</span>
|
|
|
|
|
<b class="break-word">
|
|
|
|
|
{chatMessageViewModel.channel}
|
|
|
|
|
</b>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-07-21 13:13:41 +02:00
|
|
|
|
2026-04-01 08:29:39 +00:00
|
|
|
<div class="tile">
|
|
|
|
|
<span class="icon">description</span>
|
|
|
|
|
<div>
|
|
|
|
|
<span>
|
|
|
|
|
{
|
|
|
|
|
translations.chatPage.message
|
|
|
|
|
.messageContent
|
|
|
|
|
}
|
|
|
|
|
</span>
|
|
|
|
|
<b
|
|
|
|
|
class="break-word"
|
|
|
|
|
subscribe:innerText={
|
|
|
|
|
chatMessageViewModel.body
|
|
|
|
|
}
|
|
|
|
|
></b>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-07-21 13:13:41 +02:00
|
|
|
|
2026-04-01 08:29:39 +00:00
|
|
|
<hr></hr>
|
2024-07-21 13:13:41 +02:00
|
|
|
|
2026-04-01 08:29:39 +00:00
|
|
|
<div class="flex-column gap">
|
|
|
|
|
<button on:click={chatMessageViewModel.copyMessage}>
|
|
|
|
|
{translations.chatPage.message.copyMessageButton}
|
|
|
|
|
<span class="icon">content_copy</span>
|
|
|
|
|
</button>
|
|
|
|
|
<button on:click={chatMessageViewModel.resendMessage}>
|
|
|
|
|
{translations.chatPage.message.resendMessageButton}
|
|
|
|
|
<span class="icon">redo</span>
|
|
|
|
|
</button>
|
|
|
|
|
<button on:click={chatMessageViewModel.decryptMessage}>
|
|
|
|
|
{translations.chatPage.message.decryptMessageButton}
|
|
|
|
|
<span class="icon">key</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
2026-04-07 18:39:55 +00:00
|
|
|
|
|
|
|
|
<hr></hr>
|
|
|
|
|
|
2026-04-07 19:13:29 +00:00
|
|
|
{MessageReactionButtonRow(chatMessageViewModel)}
|
2026-04-01 08:29:39 +00:00
|
|
|
</main>
|
|
|
|
|
<button on:click={chatMessageViewModel.hideInfoModal}>
|
|
|
|
|
{translations.general.closeButton}
|
|
|
|
|
<span class="icon">close</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
2024-07-21 13:13:41 +02:00
|
|
|
}
|