59 lines
1.8 KiB
Text
59 lines
1.8 KiB
Text
|
@inject IJSRuntime JS
|
|||
|
@inject State State
|
|||
|
@inject RestService api
|
|||
|
@inject NavigationManager navigationManager
|
|||
|
|
|||
|
<div class="overlay @(Active ? "active" : string.Empty)" data-ui="#@id"></div>
|
|||
|
<dialog id="@id" class="@(Active ? "active" : string.Empty)" open="@Active">
|
|||
|
<h5>Share a fleeting thought</h5>
|
|||
|
<div class="row">
|
|||
|
<div class="field textarea border max">
|
|||
|
<InputTextArea @bind-Value="Content"></InputTextArea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="row">
|
|||
|
<p>Your anonymous post will be shared for a while, and then it will disappear forever. It can’t be edited, so take care before submitting.</p>
|
|||
|
</div>
|
|||
|
<div class="row">
|
|||
|
<p><strong>If you need help, don’t suffer in silence. <a href="https://www.helpguide.org/find-help.htm">Talk to someone right now</a>.</strong></p>
|
|||
|
</div>
|
|||
|
<nav class="right-align no-space">
|
|||
|
<button class="transparent link" data-ui="#@id" disabled="@loading">Cancel</button>
|
|||
|
<button @onclick="PostEphemeral" disabled="@loading">
|
|||
|
@if (loading) {
|
|||
|
<span>Saving...</span>
|
|||
|
}
|
|||
|
else {
|
|||
|
<i class="fa-solid fa-floppy-disk"></i> <span>Save</span>
|
|||
|
}
|
|||
|
</button>
|
|||
|
</nav>
|
|||
|
</dialog>
|
|||
|
|
|||
|
@code {
|
|||
|
[Parameter]
|
|||
|
public string id { get; set; }
|
|||
|
[Parameter]
|
|||
|
public bool Active { get; set; }
|
|||
|
[Parameter]
|
|||
|
public string Content { get; set; } = string.Empty;
|
|||
|
|
|||
|
private bool loading = false;
|
|||
|
|
|||
|
public async Task PostEphemeral() {
|
|||
|
loading = true;
|
|||
|
await InvokeAsync(StateHasChanged);
|
|||
|
var result = await api.PostEphemeral(Content);
|
|||
|
if (result != null) {
|
|||
|
await State.RefreshStatuses();
|
|||
|
State.SendRefresh();
|
|||
|
await InvokeAsync(StateHasChanged);
|
|||
|
}
|
|||
|
|
|||
|
this.Active = false;
|
|||
|
await JS.InvokeVoidAsync("ui", "#" + id);
|
|||
|
Content = string.Empty;
|
|||
|
loading = false;
|
|||
|
}
|
|||
|
}
|