2024-06-13 10:02:51 +00:00
|
|
|
@inject IJSRuntime JS
|
|
|
|
|
2024-07-02 00:29:50 +00:00
|
|
|
<article class="status gray-9-fg" style="background-color:@(Status!.Background)">
|
2024-05-31 01:27:01 +00:00
|
|
|
<div class="row">
|
2024-06-13 10:02:51 +00:00
|
|
|
<div class="emoji" data-emoji="@Status.EmojiOrDefault">@Status.EmojiOrDefault</div>
|
2024-05-31 01:27:01 +00:00
|
|
|
<div class="max">
|
2024-06-14 00:45:31 +00:00
|
|
|
<div class="row">
|
|
|
|
<a class="author" href="/person/@Status.Address">
|
|
|
|
<i class="fa-solid fa-fw fa-at"></i>@Status.Address
|
|
|
|
</a>
|
|
|
|
<div class="max"></div>
|
|
|
|
<button class="transparent circle" @onclick="ShareClick">
|
|
|
|
<i class="fa-solid fa-share-nodes"></i>
|
|
|
|
</button>
|
|
|
|
@if (Editable) {
|
|
|
|
<button class="small circle small-elevate" @onclick="EditStatus">
|
|
|
|
<i class="fa-solid fa-pencil"></i>
|
|
|
|
</button>
|
|
|
|
}
|
|
|
|
</div>
|
2024-06-13 10:02:51 +00:00
|
|
|
@Status.HtmlContent
|
2024-06-13 04:46:24 +00:00
|
|
|
<nav class="no-margin">
|
|
|
|
<a class="chip transparent-border">
|
2024-06-13 10:02:51 +00:00
|
|
|
<i class="fa fa-clock"></i> @Status.RelativeTime
|
2024-06-13 04:46:24 +00:00
|
|
|
</a>
|
2024-06-20 04:26:45 +00:00
|
|
|
@if (!string.IsNullOrWhiteSpace(Status.ExternalUrl))
|
|
|
|
{
|
|
|
|
<a class="chip transparent-border" href="@Status.ExternalUrl" target="_blank">
|
|
|
|
<i class="fa fa-message-dots"></i> @(new Uri(Status.ExternalUrl).Host)
|
|
|
|
</a>
|
|
|
|
}
|
2024-06-14 00:45:31 +00:00
|
|
|
</nav>
|
2024-05-31 01:27:01 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</article>
|
|
|
|
|
|
|
|
@code {
|
|
|
|
[Parameter]
|
2024-07-02 00:13:52 +00:00
|
|
|
public Status? Status { get; set; }
|
2024-06-13 10:02:51 +00:00
|
|
|
[Parameter]
|
|
|
|
public bool Editable { get; set; } = false;
|
|
|
|
[Parameter]
|
|
|
|
public EditStatusDialog? Dialog { get; set; }
|
|
|
|
|
|
|
|
private async Task EditStatus(EventArgs e) {
|
2024-07-02 00:13:52 +00:00
|
|
|
Dialog!.Status = Status;
|
2024-06-13 10:02:51 +00:00
|
|
|
await InvokeAsync(StateHasChanged);
|
|
|
|
await JS.InvokeVoidAsync("ui", "#" + Dialog?.id);
|
|
|
|
}
|
2024-06-07 04:25:21 +00:00
|
|
|
|
|
|
|
public async Task ShareClick(EventArgs e){
|
|
|
|
await Share.Default.RequestAsync(new ShareTextRequest{
|
2024-07-02 00:13:52 +00:00
|
|
|
Text = $"{Status!.Content}\n- from [@{Status.Address}]({Status.Url})",
|
2024-06-07 04:25:21 +00:00
|
|
|
Title = "I saw this on status.lol",
|
|
|
|
Subject = "I saw this on status.lol"
|
|
|
|
});
|
|
|
|
}
|
2024-05-31 01:27:01 +00:00
|
|
|
}
|