User
fix: overall UI
f6d34ff
Raw
History Blame Contribute Delete
1.37 kB
@rendermode @(new InteractiveServerRenderMode(prerender: false))
@implements IDisposable
@inject TaskTrackingSystem.WebApp.Localization.UiLanguageService Language
<button type="button"
@onclick="ToggleLanguage"
class="control-button px-3"
title="@ButtonTitle"
aria-label="@ButtonTitle">
<span class="text-xs font-semibold tracking-wide">@ButtonLabel</span>
</button>
@code {
private string ButtonTitle => Language.CurrentLanguage == TaskTrackingSystem.WebApp.Localization.AppLanguage.Burmese
? Language.Texts.LanguageTitle + ": " + Language.Texts.LanguageEnglish
: Language.Texts.LanguageTitle + ": " + Language.Texts.LanguageBurmese;
private string ButtonLabel => Language.CurrentLanguage == TaskTrackingSystem.WebApp.Localization.AppLanguage.Burmese
? "MY"
: "EN";
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
Language.Changed += OnLanguageChanged;
await Language.InitializeAsync();
StateHasChanged();
}
}
private async Task ToggleLanguage()
{
await Language.ToggleAsync();
}
private void OnLanguageChanged()
{
_ = InvokeAsync(StateHasChanged);
}
public void Dispose()
{
Language.Changed -= OnLanguageChanged;
}
}