diff --git a/src/CodeBeam.MudBlazor.Extensions/Components/CodeInput/MudCodeInput.razor.cs b/src/CodeBeam.MudBlazor.Extensions/Components/CodeInput/MudCodeInput.razor.cs index 78c4b013..d5f25669 100644 --- a/src/CodeBeam.MudBlazor.Extensions/Components/CodeInput/MudCodeInput.razor.cs +++ b/src/CodeBeam.MudBlazor.Extensions/Components/CodeInput/MudCodeInput.razor.cs @@ -31,9 +31,20 @@ public MudCodeInput() private readonly ParameterState _theValue; private readonly ParameterState _count; + private bool _pendingSetValue; + private T? _pendingValue; private async Task OnValueChanged() { - await SetValueFromOutside(_theValue.Value); + _pendingValue = _theValue.Value; + + if (_rendered) + { + await SetValueFromOutside(_pendingValue); + } + else + { + _pendingSetValue = true; + } } private async Task OnCountChanged() @@ -270,15 +281,31 @@ public async Task FocusPrevious() await _elementReferences[_lastFocusedIndex - 1].FocusAsync(); } - /// - /// - /// + /// protected override void OnInitialized() { base.OnInitialized(); SyncReferences(); } + private bool _rendered = false; + /// + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await base.OnAfterRenderAsync(firstRender); + + if (firstRender) + { + _rendered = true; + } + + if (_pendingSetValue) + { + _pendingSetValue = false; + await SetValueFromOutside(_pendingValue); + } + } + private void SyncReferences() { _elementReferences.Clear(); @@ -316,6 +343,9 @@ public async Task SetValue() /// public async Task SetValueFromOutside(T? value) { + if (!_rendered) + return; + string? val = ConvertSet(value); if (_count.Value < val?.Length) { @@ -324,6 +354,9 @@ public async Task SetValueFromOutside(T? value) await _theValue.SetValueAsync(base.ConvertGet(val)); for (int i = 0; i < _count.Value; i++) { + if (_elementReferences[i] == null) + continue; + if (i < val?.Length) { await _elementReferences[i].SetText(val[i].ToString()); diff --git a/src/CodeBeam.MudBlazor.Extensions/Components/DateTimePicker/MudDateTimePicker.razor.cs b/src/CodeBeam.MudBlazor.Extensions/Components/DateTimePicker/MudDateTimePicker.razor.cs index 2cf7af50..d8049512 100644 --- a/src/CodeBeam.MudBlazor.Extensions/Components/DateTimePicker/MudDateTimePicker.razor.cs +++ b/src/CodeBeam.MudBlazor.Extensions/Components/DateTimePicker/MudDateTimePicker.razor.cs @@ -339,12 +339,12 @@ protected override string GetDayClasses(int month, DateTime day) if (current?.Date == day.Date) return b.AddClass("mud-selected") - .AddClass($"mud-theme-{Color.ToStringFast(true)}") + .AddClass($"mud-theme-{Color.ToString().ToLowerInvariant()}") .Build(); if (day.Date == TimeProvider.GetLocalNow().Date) return b.AddClass("mud-current mud-button-outlined") - .AddClass($"mud-button-outlined-{Color.ToStringFast(true)} mud-{Color.ToStringFast(true)}-text") + .AddClass($"mud-button-outlined-{Color.ToString().ToLowerInvariant()} mud-{Color.ToString().ToLowerInvariant()}-text") .Build(); return b.Build(); @@ -711,12 +711,12 @@ private string GetNumberColor(int value) if (h == value) { - return $"mud-clock-number mud-theme-{Color.ToStringFast(true)}"; + return $"mud-clock-number mud-theme-{Color.ToString().ToLowerInvariant()}"; } } else if (CurrentView == OpenTo.Minutes && _timeSet.Minute == value) { - return $"mud-clock-number mud-theme-{Color.ToStringFast(true)}"; + return $"mud-clock-number mud-theme-{Color.ToString().ToLowerInvariant()}"; } return "mud-clock-number"; @@ -725,21 +725,21 @@ private string GetNumberColor(int value) private string GetClockPointerColor() { return PointerMoving - ? $"mud-picker-time-clock-pointer mud-{Color.ToStringFast(true)}" - : $"mud-picker-time-clock-pointer mud-picker-time-clock-pointer-animation mud-{Color.ToStringFast(true)}"; + ? $"mud-picker-time-clock-pointer mud-{Color.ToString().ToLowerInvariant()}" + : $"mud-picker-time-clock-pointer mud-picker-time-clock-pointer-animation mud-{Color.ToString().ToLowerInvariant()}"; } private string GetClockPinColor() { - return $"mud-picker-time-clock-pin mud-{Color.ToStringFast(true)}"; + return $"mud-picker-time-clock-pin mud-{Color.ToString().ToLowerInvariant()}"; } private string GetClockPointerThumbColor() { var deg = GetDeg(); return deg % 30 == 0 - ? $"mud-picker-time-clock-pointer-thumb mud-onclock-text mud-onclock-primary mud-{Color.ToStringFast(true)}" - : $"mud-picker-time-clock-pointer-thumb mud-onclock-minute mud-{Color.ToStringFast(true)}-text"; + ? $"mud-picker-time-clock-pointer-thumb mud-onclock-text mud-onclock-primary mud-{Color.ToString().ToLowerInvariant()}" + : $"mud-picker-time-clock-pointer-thumb mud-onclock-minute mud-{Color.ToString().ToLowerInvariant()}-text"; } private static string GetTransform(double angle, double radius, double offsetX, double offsetY)