Skip to content

Commit 275f289

Browse files
authored
Merge pull request #693 from unoplatform/dev/mara/step-counter-record
chore: turn Step and Count into record
2 parents 5611d65 + 4ac7a8a commit 275f289

File tree

6 files changed

+39
-27
lines changed

6 files changed

+39
-27
lines changed
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
namespace Counter;
22

3+
internal partial record Countable(int Count, int Step)
4+
{
5+
public Countable Increment() => this with
6+
{
7+
Count = Count + Step
8+
};
9+
}
10+
311
internal partial record MainModel
412
{
5-
public IState<int> Count => State.Value(this, () => 0);
13+
public IState<Countable> Countable => State.Value(this, () => new Countable(0, 1));
614

7-
public IState<int> Step => State.Value(this, () => 1);
8-
9-
public ValueTask IncrementCommand(int Step)
10-
=> Count.Update(c => c + Step, CancellationToken.None);
15+
public ValueTask IncrementCounter()
16+
=> Countable.UpdateAsync(c => c?.Increment());
1117
}

reference/Counter/CSharp-MVUX/Counter/MainPage.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ public MainPage()
2121
.HorizontalAlignment(HorizontalAlignment.Center)
2222
.TextAlignment(Microsoft.UI.Xaml.TextAlignment.Center)
2323
.PlaceholderText("Step Size")
24-
.Text(x => x.Bind(() => vm.Step).TwoWay()),
24+
.Text(x => x.Bind(() => vm.Countable.Step).TwoWay()),
2525
new TextBlock()
2626
.Margin(12)
2727
.HorizontalAlignment(HorizontalAlignment.Center)
2828
.TextAlignment(Microsoft.UI.Xaml.TextAlignment.Center)
29-
.Text(() => vm.Count, txt => $"Counter: {txt}"),
29+
.Text(() => vm.Countable.Count, txt => $"Counter: {txt}"),
3030
new Button()
3131
.Margin(12)
3232
.HorizontalAlignment(HorizontalAlignment.Center)
33-
.Command(() => vm.IncrementCommand)
33+
.Command(() => vm.IncrementCounter)
3434
.Content("Increment Counter by Step Size")
3535
)
3636
)
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<Project ToolsVersion="15.0">
22
<ItemGroup>
3-
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.0-rc.2.23479.6" />
3+
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
44
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="8.0.0-rc.2.23479.10" />
55
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
6-
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.4.231008000" />
6+
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.5.240311000" />
77
<PackageVersion Include="SkiaSharp.Skottie" Version="2.88.6" />
88
<PackageVersion Include="SkiaSharp.Views.Uno.WinUI" Version="2.88.6" />
99
<PackageVersion Include="Uno.Core.Extensions.Logging.Singleton" Version="4.0.1" />
1010
<PackageVersion Include="Uno.Extensions.Logging.OSLog" Version="1.7.0" />
1111
<PackageVersion Include="Uno.Extensions.Logging.WebAssembly.Console" Version="1.7.0" />
12-
<PackageVersion Include="Uno.Extensions.Reactive" Version="3.0.11" />
13-
<PackageVersion Include="Uno.Extensions.Reactive.WinUI" Version="3.0.11" />
12+
<PackageVersion Include="Uno.Extensions.Reactive" Version="4.0.0" />
13+
<PackageVersion Include="Uno.Extensions.Reactive.WinUI" Version="4.0.0" />
1414
<PackageVersion Include="Uno.Resizetizer" Version="1.2.1" />
1515
<PackageVersion Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Version="5.0.48" />
1616
<PackageVersion Include="Uno.UniversalImageLoader" Version="1.9.36" />
@@ -21,11 +21,11 @@
2121
<PackageVersion Include="Uno.WinUI.Lottie" Version="5.0.48" />
2222
<PackageVersion Include="Uno.WinUI.Markup" Version="5.0.13" />
2323
<PackageVersion Include="Uno.Extensions.Markup.Generators" Version="5.0.13" />
24-
<PackageVersion Include="Uno.Extensions.Reactive.WinUI.Markup" Version="3.0.11" />
24+
<PackageVersion Include="Uno.Extensions.Reactive.WinUI.Markup" Version="4.0.0" />
2525
<PackageVersion Include="Uno.Themes.WinUI.Markup" Version="4.0.6" />
2626
<PackageVersion Include="Uno.WinUI.DevServer" Version="5.0.48" />
2727
<PackageVersion Include="Uno.WinUI.Skia.Gtk" Version="5.0.48" />
2828
<PackageVersion Include="Uno.WinUI.WebAssembly" Version="5.0.48" />
2929
<PackageVersion Include="Xamarin.Google.Android.Material" Version="1.10.0.1" />
3030
</ItemGroup>
31-
</Project>
31+
</Project>
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
namespace Counter;
22

3-
internal partial record MainModel
3+
internal partial record Countable(int Count, int Step)
44
{
5-
public IState<int> Count => State.Value(this, () => 0);
5+
public Countable Increment() => this with
6+
{
7+
Count = Count + Step
8+
};
9+
}
610

7-
public IState<int> Step => State.Value(this, () => 1);
11+
internal partial record MainModel
12+
{
13+
public IState<Countable> Countable => State.Value(this, () => new Countable(0, 1));
814

9-
public ValueTask IncrementCommand(int Step)
10-
=> Count.Update(c => c + Step, CancellationToken.None);
15+
public ValueTask IncrementCounter()
16+
=> Countable.UpdateAsync(c => c?.Increment());
1117
}

reference/Counter/XAML-MVUX/Counter/MainPage.xaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@
1919
Margin="12"
2020
HorizontalAlignment="Center"
2121
PlaceholderText="Step Size"
22-
Text="{Binding Step, Mode=TwoWay}"
22+
Text="{Binding Countable.Step, Mode=TwoWay}"
2323
TextAlignment="Center" />
2424

2525
<TextBlock
2626
Margin="12"
2727
HorizontalAlignment="Center"
2828
TextAlignment="Center">
29-
<Run Text="Counter: " /><Run Text="{Binding Count}" />
29+
<Run Text="Counter: " /><Run Text="{Binding Countable.Count}" />
3030
</TextBlock>
3131

3232
<Button
3333
Margin="12"
3434
HorizontalAlignment="Center"
35-
Command="{Binding IncrementCommand}"
35+
Command="{Binding IncrementCounter}"
3636
Content="Increment Counter by Step Size" />
3737
</StackPanel>
3838
</Page>

reference/Counter/XAML-MVUX/Directory.Packages.props

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<Project ToolsVersion="15.0">
22
<ItemGroup>
3-
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.0-rc.2.23479.6" />
3+
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
44
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="8.0.0-rc.2.23479.10" />
55
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
6-
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.4.231008000" />
6+
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.5.240311000" />
77
<PackageVersion Include="SkiaSharp.Skottie" Version="2.88.6" />
88
<PackageVersion Include="SkiaSharp.Views.Uno.WinUI" Version="2.88.6" />
99
<PackageVersion Include="Uno.Core.Extensions.Logging.Singleton" Version="4.0.1" />
1010
<PackageVersion Include="Uno.Extensions.Logging.OSLog" Version="1.7.0" />
1111
<PackageVersion Include="Uno.Extensions.Logging.WebAssembly.Console" Version="1.7.0" />
12-
<PackageVersion Include="Uno.Extensions.Reactive" Version="3.0.11" />
13-
<PackageVersion Include="Uno.Extensions.Reactive.WinUI" Version="3.0.11" />
12+
<PackageVersion Include="Uno.Extensions.Reactive" Version="4.0.0" />
13+
<PackageVersion Include="Uno.Extensions.Reactive.WinUI" Version="4.0.0" />
1414
<PackageVersion Include="Uno.Resizetizer" Version="1.2.1" />
1515
<PackageVersion Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Version="5.0.48" />
1616
<PackageVersion Include="Uno.UniversalImageLoader" Version="1.9.36" />
@@ -24,4 +24,4 @@
2424
<PackageVersion Include="Uno.WinUI.WebAssembly" Version="5.0.48" />
2525
<PackageVersion Include="Xamarin.Google.Android.Material" Version="1.10.0.1" />
2626
</ItemGroup>
27-
</Project>
27+
</Project>

0 commit comments

Comments
 (0)