Skip to content

Commit 6f64911

Browse files
authored
feat(Timeline): add DescriptionTemplate parameter (#5088)
* feat: 增加 DescriptionTemplate 参数 * chore: bump version 9.2.7-beta04 * test: 增加单元测试
1 parent a200c0f commit 6f64911

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
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.2.7-beta03</Version>
4+
<Version>9.2.7-beta04</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Components/Timeline/Timeline.razor

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,14 @@
2424
@item.Component.Render()
2525
}
2626
<div class="timeline-item-timestamp">
27-
@item.Description
27+
@if(item.DescriptionTemplate != null)
28+
{
29+
@item.DescriptionTemplate
30+
}
31+
else
32+
{
33+
@item.Description
34+
}
2835
</div>
2936
</div>
3037
</li>

src/BootstrapBlazor/Components/Timeline/TimelineItem.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@ public class TimelineItem
1616
public string? Content { get; set; }
1717

1818
/// <summary>
19-
/// 获得/设置 时间线时间
19+
/// 获得/设置 时间线描述
2020
/// </summary>
2121
public string? Description { get; set; }
2222

23+
/// <summary>
24+
/// 获得/设置 时间线描述模板
25+
/// </summary>
26+
public RenderFragment? DescriptionTemplate { get; set; }
27+
2328
/// <summary>
2429
/// 获得/设置 时间线颜色
2530
/// </summary>

test/UnitTest/Components/TimelineTest.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,31 @@ public void Items_Ok()
6262
Assert.Contains("card-body", html);
6363
Assert.Matches("bg-dark(.*?)text-danger", html.Replace("\r", "").Replace("\n", ""));
6464
}
65+
66+
[Fact]
67+
public void ItemDescriptionTemplate_Ok()
68+
{
69+
var items = new List<TimelineItem>()
70+
{
71+
new()
72+
{
73+
Color = Color.Danger, Content = "first item", Icon = "fa-solid fa-house", DescriptionTemplate = pb =>
74+
{
75+
pb.OpenElement(0, "div");
76+
pb.AddContent(1, "first description template");
77+
pb.CloseElement();
78+
}
79+
},
80+
new()
81+
{
82+
Color = Color.None, Content = "no color item", Description = "first description", Icon = "fa-solid fa-house"
83+
}
84+
};
85+
86+
var cut = Context.RenderComponent<Timeline>(pb =>
87+
{
88+
pb.Add(x => x.Items, items);
89+
});
90+
Assert.Contains("first description template", cut.Markup);
91+
}
6592
}

0 commit comments

Comments
 (0)