Skip to content

Commit d4db602

Browse files
committed
Refactor CalculateValueFromSliderValue and CalculateValueFromSliderValue (based on Copilot feedback)
1 parent f0c2269 commit d4db602

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/CommunityToolkit.Maui/Views/RangeSlider/RangeSlider.shared.cs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ void HandleLowerSliderPropertyChanged(object? sender, PropertyChangedEventArgs e
335335

336336
if (e.PropertyName.Is(Slider.ValueProperty))
337337
{
338-
LowerValue = (StepSize == 0.0 ? lowerSlider.Value : Math.Round(lowerSlider.Value)) * GetUnit() + MinimumValue;
338+
LowerValue = CalculateValueFromSliderValue(lowerSlider.Value);
339339
SetFocusMode(RangeSliderFocusMode.Lower);
340340
UpdateInnerTrackLayout();
341341
}
@@ -368,12 +368,17 @@ void HandleUpperSliderPropertyChanged(object? sender, PropertyChangedEventArgs e
368368

369369
if (e.PropertyName.Is(Slider.ValueProperty))
370370
{
371-
UpperValue = (StepSize == 0.0 ? upperSlider.Value : Math.Round(upperSlider.Value)) * GetUnit() + MinimumValue;
371+
UpperValue = CalculateValueFromSliderValue(upperSlider.Value);
372372
SetFocusMode(RangeSliderFocusMode.Upper);
373373
UpdateInnerTrackLayout();
374374
}
375375
}
376376

377+
double CalculateValueFromSliderValue(double sliderValue)
378+
{
379+
return (StepSize == 0.0 ? sliderValue : Math.Round(sliderValue)) * GetUnit() + MinimumValue;
380+
}
381+
377382
void HandleUpperSliderFocused(object? sender, FocusEventArgs e)
378383
{
379384
SetFocusMode(RangeSliderFocusMode.Upper);
@@ -397,7 +402,7 @@ void UpdateFocusedSliderLayout()
397402

398403
double range = upperSlider.Maximum - lowerSlider.Minimum;
399404
double trackWidth = Width - PlatformThumbSize;
400-
if (range != 0 && trackWidth > 0)
405+
if (IsLayoutValid(range, trackWidth))
401406
{
402407
lowerSlider.WidthRequest = trackWidth * (lowerSlider.Maximum - lowerSlider.Minimum) / range + PlatformThumbSize;
403408
upperSlider.WidthRequest = trackWidth * (upperSlider.Maximum - upperSlider.Minimum) / range + PlatformThumbSize;
@@ -434,10 +439,15 @@ void UpdateInnerTrackLayout()
434439
{
435440
double range = upperSlider.Maximum - lowerSlider.Minimum;
436441
double trackWidth = Width - PlatformThumbSize;
437-
if (range != 0 && trackWidth > 0)
442+
if (IsLayoutValid(range, trackWidth))
438443
{
439444
innerTrack.TranslationX = trackWidth * (lowerSlider.Value - lowerSlider.Minimum) / range + PlatformThumbSize / 2 - InnerTrackSize / 2;
440445
innerTrack.WidthRequest = trackWidth * (upperSlider.Value - lowerSlider.Value) / range + InnerTrackSize;
441446
}
442447
}
448+
449+
bool IsLayoutValid(double range, double trackWidth)
450+
{
451+
return range != 0 && trackWidth > 0;
452+
}
443453
}

0 commit comments

Comments
 (0)