@using Moonlight.App.Database.Entities @using Moonlight.App.Helpers @using Moonlight.App.Services @using Moonlight.App.Services.Files @using System.Text.RegularExpressions @inject ResourceService ResourceService @inject SmartTranslateService SmartTranslateService
@foreach (var message in Messages.OrderByDescending(x => x.Id)) // Reverse messages to use auto scrolling { if (message.IsSupportMessage) { if (ViewAsSupport) {
@(Formatter.FormatAgoFromDateTime(message.CreatedAt, SmartTranslateService)) @if (message.Sender != null) { @(message.Sender!.FirstName) @(message.Sender!.LastName) }
@if (message.Sender != null) { Avatar }
@{ int i = 0; var arr = message.Content.Split("\n", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); } @foreach (var line in arr) { @line if (i++ != arr.Length - 1) {
} } @if (!string.IsNullOrEmpty(message.AttachmentUrl)) {
@if (Regex.IsMatch(message.AttachmentUrl, @"\.(jpg|jpeg|png|gif|bmp)$")) { Attachment } else { @(message.AttachmentUrl) }
}
} else {
@if (message.Sender != null) { Avatar }
@(message.Sender!.FirstName) @(message.Sender!.LastName) @(Formatter.FormatAgoFromDateTime(message.CreatedAt, SmartTranslateService))
@{ int i = 0; var arr = message.Content.Split("\n", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); } @foreach (var line in arr) { @line if (i++ != arr.Length - 1) {
} } @if (!string.IsNullOrEmpty(message.AttachmentUrl)) {
@if (Regex.IsMatch(message.AttachmentUrl, @"\.(jpg|jpeg|png|gif|bmp)$")) { Attachment } else { @(message.AttachmentUrl) }
}
} } else if (message.IsSystemMessage) {
@(message.Content)
} else { if (ViewAsSupport) {
@if (message.Sender != null) { Avatar }
@(message.Sender!.FirstName) @(message.Sender!.LastName) @(Formatter.FormatAgoFromDateTime(message.CreatedAt, SmartTranslateService))
@{ int i = 0; var arr = message.Content.Split("\n", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); } @foreach (var line in arr) { @line if (i++ != arr.Length - 1) {
} } @if (!string.IsNullOrEmpty(message.AttachmentUrl)) {
@if (Regex.IsMatch(message.AttachmentUrl, @"\.(jpg|jpeg|png|gif|bmp)$")) { Attachment } else { @(message.AttachmentUrl) }
}
} else {
@(Formatter.FormatAgoFromDateTime(message.CreatedAt, SmartTranslateService)) @(message.Sender!.FirstName) @(message.Sender!.LastName)
@if (message.Sender != null) { Avatar }
@{ int i = 0; var arr = message.Content.Split("\n", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); } @foreach (var line in arr) { @line if (i++ != arr.Length - 1) {
} } @if (!string.IsNullOrEmpty(message.AttachmentUrl)) {
@if (Regex.IsMatch(message.AttachmentUrl, @"\.(jpg|jpeg|png|gif|bmp)$")) { Attachment } else { @(message.AttachmentUrl) }
}
} } }
@code { [Parameter] public IEnumerable Messages { get; set; } [Parameter] public bool ViewAsSupport { get; set; } }