Skip to content

Commit e2ff294

Browse files
authored
feat(Logout): add AvatarRadius parameter (#5969)
* feat: 增加 AvatarRadius 参数 * test: 增加单元测试 * chore: bump version 9.6.1-beta02
1 parent 897d657 commit e2ff294

File tree

5 files changed

+30
-8
lines changed

5 files changed

+30
-8
lines changed

src/BootstrapBlazor/BootstrapBlazor.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>9.6.1-beta03</Version>
4+
<Version>9.6.1-beta02</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Components/Logout/Logout.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
@if (HeaderTemplate == null)
2222
{
2323
<div class="d-flex flex-fill align-items-center">
24-
<img alt="avatar" src="@ImageUrl">
24+
<img alt="avatar" src="@ImageUrl" style="@AvatarStyleString">
2525
<div class="flex-fill">
2626
<div class="logout-dn">@PrefixDisplayNameText @DisplayName</div>
2727
<div class="logout-un">@PrefixUserNameText @UserName</div>

src/BootstrapBlazor/Components/Logout/Logout.razor.cs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ namespace BootstrapBlazor.Components;
1212
/// </summary>
1313
public partial class Logout
1414
{
15-
private string? LogoutClassString => CssBuilder.Default("dropdown dropdown-logout")
16-
.AddClassFromAttributes(AdditionalAttributes)
17-
.Build();
15+
[Inject]
16+
[NotNull]
17+
private IStringLocalizer<Logout>? Localizer { get; set; }
1818

1919
/// <summary>
2020
/// 获得/设置 组件当前用户头像
@@ -70,9 +70,19 @@ public partial class Logout
7070
[Parameter]
7171
public RenderFragment? LinkTemplate { get; set; }
7272

73-
[Inject]
74-
[NotNull]
75-
private IStringLocalizer<Logout>? Localizer { get; set; }
73+
/// <summary>
74+
/// Gets or sets the avatar border radius. Default is null.
75+
/// </summary>
76+
[Parameter]
77+
public string? AvatarRadius { get; set; }
78+
79+
private string? LogoutClassString => CssBuilder.Default("dropdown dropdown-logout")
80+
.AddClassFromAttributes(AdditionalAttributes)
81+
.Build();
82+
83+
private string? AvatarStyleString => CssBuilder.Default()
84+
.AddStyle("--bb-logout-user-avatar-border-radius", AvatarRadius, !string.IsNullOrEmpty(AvatarRadius))
85+
.Build();
7686

7787
/// <summary>
7888
/// OnInitialized 方法

src/BootstrapBlazor/Components/Logout/Logout.razor.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
width: var(--bb-logout-user-avatar-width);
7171
height: var(--bb-logout-user-avatar-height);
7272
margin-inline-end: var(--bb-logout-user-avatar-margin-right);
73+
border-radius: var(--bb-logout-user-avatar-border-radius, 0);
7374
}
7475

7576
.dropdown-logout .logout-un {

test/UnitTest/Components/LogoutTest.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,15 @@ public void LinkTemplate_Ok()
9696
});
9797
Assert.Contains("link_template", cut.Markup);
9898
}
99+
100+
[Fact]
101+
public void AvatarRadius_Ok()
102+
{
103+
// 未设置 Items
104+
var cut = Context.RenderComponent<Logout>(pb =>
105+
{
106+
pb.Add(a => a.AvatarRadius, "50%");
107+
});
108+
Assert.Contains("--bb-logout-user-avatar-border-radius: 50%;", cut.Markup);
109+
}
99110
}

0 commit comments

Comments
 (0)