From 3e222a6af66b249037386c21406d7259085febc9 Mon Sep 17 00:00:00 2001
From: Lee-Lily-Lea <78075553+Lee-Lily-Lea@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:16:29 +0800
Subject: [PATCH 1/6] =?UTF-8?q?=F0=9F=86=95=20feat(MPagination):=20Added?=
=?UTF-8?q?=20MiniVariant=20MiniVariantChange=20and=20MobileBreakpoint?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Components/Pagination/MPagination.razor | 33 ++++---
.../Pagination/MPagination.razor.cs | 86 +++++++++++++++++--
2 files changed, 103 insertions(+), 16 deletions(-)
diff --git a/src/Masa.Blazor/Components/Pagination/MPagination.razor b/src/Masa.Blazor/Components/Pagination/MPagination.razor
index 6b6928d1fe..c44ff83b18 100644
--- a/src/Masa.Blazor/Components/Pagination/MPagination.razor
+++ b/src/Masa.Blazor/Components/Pagination/MPagination.razor
@@ -8,18 +8,29 @@
@GenPaginationIcon(PaginationIconType.First)
- @foreach (var item in GetItems())
+ @if (prevMiniVariant)
{
- -
- @if (item.IsT0)
- {
- @item
- }
- else
- {
- @GenPaginationItem(item)
- }
-
+
+ }
+ else
+ {
+ @foreach (var item in GetItems())
+ {
+ -
+ @if (item.IsT0)
+ {
+ @item
+ }
+ else
+ {
+ @GenPaginationItem(item)
+ }
+
+ }
}
@GenPaginationIcon(PaginationIconType.Second)
diff --git a/src/Masa.Blazor/Components/Pagination/MPagination.razor.cs b/src/Masa.Blazor/Components/Pagination/MPagination.razor.cs
index ac9b3ed206..82725f4842 100644
--- a/src/Masa.Blazor/Components/Pagination/MPagination.razor.cs
+++ b/src/Masa.Blazor/Components/Pagination/MPagination.razor.cs
@@ -47,6 +47,25 @@ public partial class MPagination : MasaComponentBase
[CascadingParameter(Name = "IsDark")] public bool CascadingIsDark { get; set; }
+ [Parameter, MasaApiParameter(false, "v1.7.0")]
+ public bool MiniVariant
+ {
+ get => GetValue(false);
+ set => SetValue(value);
+ }
+
+ [Parameter, MasaApiParameter(ReleasedOn = "v1.7.0")]
+ public EventCallback MiniVariantChanged { get; set; }
+
+ [Parameter, MasaApiParameter(600, "v1.7.0")]
+ public OneOf MobileBreakpoint
+ {
+ get => GetValue>(600);
+ set => SetValue(value);
+ }
+
+ private bool prevMiniVariant;
+
public bool IsDark
{
get
@@ -79,17 +98,25 @@ public bool IsDark
private bool IndependentTheme =>
(IsDirtyParameter(nameof(Dark)) && Dark) || (IsDirtyParameter(nameof(Light)) && Light);
+ protected override void OnParametersSet()
+ {
+ base.OnParametersSet();
+
#if NET8_0_OR_GREATER
- protected override void OnParametersSet()
+ if (MasaBlazor.IsSsr && !IndependentTheme)
{
- base.OnParametersSet();
+ CascadingIsDark = MasaBlazor.Theme.Dark;
+ }
+#endif
- if (MasaBlazor.IsSsr && !IndependentTheme)
+ if (IsDirtyParameter(nameof(MiniVariant)))
+ {
+ if (MiniVariant != prevMiniVariant)
{
- CascadingIsDark = MasaBlazor.Theme.Dark;
+ prevMiniVariant = MiniVariant;
}
}
-#endif
+ }
protected override async Task OnAfterRenderAsync(bool firstRender)
{
@@ -280,4 +307,53 @@ protected override async ValueTask DisposeAsyncCore()
{
await IntersectJSModule.UnobserveAsync(Ref);
}
+
+ protected override void OnInitialized()
+ {
+ MasaBlazor.WindowSizeChanged -= MasaBlazor_WindowSizeChanged;
+ MasaBlazor.WindowSizeChanged += MasaBlazor_WindowSizeChanged;
+ }
+
+ private async void MasaBlazor_WindowSizeChanged(object? sender, BreakpointChangedEventArgs e)
+ {
+ if (IsDirtyParameter(nameof(MiniVariant)))
+ {
+ return;
+ }
+
+ var isM = CalMobileBreakpoint();
+ if (isM != prevMiniVariant)
+ {
+ prevMiniVariant = isM;
+ if (MiniVariantChanged.HasDelegate)
+ {
+ await MiniVariantChanged.InvokeAsync(prevMiniVariant);
+ }
+ StateHasChanged();
+ }
+ }
+
+ private bool CalMobileBreakpoint() => CalMobileBreakpoint(MasaBlazor, MobileBreakpoint);
+
+ private static bool CalMobileBreakpoint(MasaBlazor masaBlazor, OneOf mbpParam)
+ {
+ var (width, mobile, name, mobileBreakpoint) = masaBlazor.Breakpoint;
+
+ if (width == 0)
+ {
+ return false;
+ }
+
+ if (mobileBreakpoint.Equals(mbpParam))
+ {
+ return mobile;
+ }
+
+ if (mbpParam.IsT1)
+ {
+ return width <= mbpParam.AsT1;
+ }
+
+ return name <= mbpParam.AsT0;
+ }
}
\ No newline at end of file
From 8e006f5552f951d718fcc5a545e423c307370ea9 Mon Sep 17 00:00:00 2001
From: Lee-Lily-Lea <78075553+Lee-Lily-Lea@users.noreply.github.com>
Date: Thu, 1 Aug 2024 13:15:08 +0800
Subject: [PATCH 2/6] MPagination commit v2
---
.../Components/Pagination/MPagination.razor | 2 +-
.../Pagination/MPagination.razor.cs | 76 ++++++++++++-------
2 files changed, 50 insertions(+), 28 deletions(-)
diff --git a/src/Masa.Blazor/Components/Pagination/MPagination.razor b/src/Masa.Blazor/Components/Pagination/MPagination.razor
index c44ff83b18..e35102cdc3 100644
--- a/src/Masa.Blazor/Components/Pagination/MPagination.razor
+++ b/src/Masa.Blazor/Components/Pagination/MPagination.razor
@@ -8,7 +8,7 @@
@GenPaginationIcon(PaginationIconType.First)
- @if (prevMiniVariant)
+ @if (_internalMiniVariant )
{