Skip to content

Commit 2cc3ca2

Browse files
committed
Use cards on event list
1 parent b6a1cb9 commit 2cc3ca2

2 files changed

Lines changed: 59 additions & 20 deletions

File tree

PocketDDD.BlazorClient/PocketDDD.BlazorClient/Features/Home/Components/EventData.razor

Lines changed: 56 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,51 +7,88 @@
77
@inject IDispatcher Dispatcher
88

99
<MudList Clickable="true">
10-
@foreach(var timeSlot in State.Value.EventMetaData)
10+
@foreach (var timeSlot in State.Value.EventMetaData)
1111
{
1212
<MudListSubheader Class="pb-0 pl-1 border-b border-solid mud-border-primary">
1313
<MudText Typo="Typo.h6">
1414
@timeSlot.From.ToString("h:mm")
1515
@timeSlot.From.ToString("tt").ToLowerInvariant()
1616
</MudText>
1717
</MudListSubheader>
18-
@if(timeSlot.Info is not null)
18+
@if (timeSlot.Info is not null)
1919
{
2020
<MudListItem Class="ml-6">
2121
<MudText Typo="Typo.h5">@timeSlot.Info</MudText>
2222
</MudListItem>
2323
}
24-
@foreach(var sessionItem in timeSlot.Sessions.Select((session, index) => (session, index)))
24+
25+
@foreach (var sessionItem in timeSlot.Sessions.Select((session, index) => (session, index)))
2526
{
26-
<MudListItem OnClick="() => HandleViewSession(sessionItem.session.Id)">
27-
<MudPaper Class="pa-4">
28-
<MudText Typo="Typo.subtitle1">
29-
@WhenBookmarkedShowIcon(sessionItem.session)
30-
@sessionItem.session.Title
31-
</MudText>
32-
<MudText Typo="Typo.subtitle2">@sessionItem.session.SpeakerName</MudText>
33-
<MudText Typo="Typo.subtitle2">@sessionItem.session.RoomName</MudText>
34-
</MudPaper>
27+
<MudListItem>
28+
<MudCard>
29+
<MudCardHeader>
30+
<CardHeaderContent>
31+
<MudText Typo="Typo.h6">
32+
@sessionItem.session.Title
33+
</MudText>
34+
</CardHeaderContent>
35+
<CardHeaderActions>
36+
<MudToggleIconButton
37+
ToggledChanged="@(_ => HandleToggleSessionBookmarked(sessionItem.session))"
38+
Toggled="@sessionItem.session.IsBookmarked"
39+
Icon="@Icons.Material.Filled.BookmarkBorder"
40+
Color="@Color.Default"
41+
ToggledIcon="@Icons.Material.Filled.Bookmark"
42+
ToggledColor="@Color.Primary"
43+
title="@(sessionItem.session.IsBookmarked ? "Unbookmark session" : "Bookmark session")"/>
44+
</CardHeaderActions>
45+
</MudCardHeader>
46+
<MudCardContent Class="d-flex flex-row justify-space-between">
47+
<MudContainer Class="px-0">
48+
<MudText Typo="Typo.subtitle2">@sessionItem.session.SpeakerName</MudText>
49+
<MudText Typo="Typo.subtitle2">@sessionItem.session.RoomName</MudText>
50+
</MudContainer>
51+
@ShowSessionLength(sessionItem.session)
52+
</MudCardContent>
53+
<MudCardActions>
54+
<MudButton OnClick="() => HandleViewSession(sessionItem.session.Id)" Variant="Variant.Outlined" Color="Color.Primary" FullWidth="true">
55+
More details
56+
</MudButton>
57+
</MudCardActions>
58+
</MudCard>
3559
</MudListItem>
3660

37-
@if (sessionItem.index != timeSlot.Sessions.Count -1)
61+
@if (sessionItem.index != timeSlot.Sessions.Count - 1)
3862
{
39-
<MudDivider />
63+
<MudDivider/>
4064
}
4165
}
4266
}
4367

4468
</MudList>
4569

4670
@code{
47-
RenderFragment? WhenBookmarkedShowIcon(Features.Home.Store.Session session) =>
48-
session.IsBookmarked
49-
? @<MudIcon Icon="@Icons.Material.Filled.Bookmark" Title="Bookmarked" />
50-
: null;
71+
72+
RenderFragment ShowSessionLength(Session session)
73+
{
74+
var colour = Color.Info;
75+
76+
if (session.Length == TimeSpan.FromMinutes(30))
77+
colour = Color.Secondary;
78+
else if (session.Length == TimeSpan.FromMinutes(15))
79+
colour = Color.Tertiary;
80+
81+
return @<MudChip Color="@colour" Variant="Variant.Outlined">@GetTimeSpanDisplayText(session.Length)</MudChip>;
82+
}
83+
5184
}
5285

5386
@code {
54-
void HandleViewSession(int sessionId) => NavigationManager.NavigateTo($"session/{sessionId}");
87+
88+
void HandleViewSession(int sessionId)
89+
{
90+
NavigationManager.NavigateTo($"session/{sessionId}");
91+
}
5592

5693
void HandleToggleSessionBookmarked(Session session)
5794
{

PocketDDD.BlazorClient/PocketDDD.BlazorClient/Features/Home/Store/EventDataMapper.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using PocketDDD.Shared.API.ResponseDTOs;
22
using System.Collections.Immutable;
3+
using System.Globalization;
34

45
namespace PocketDDD.BlazorClient.Features.Home.Store;
56

@@ -21,7 +22,8 @@ public static IImmutableList<TimeSlot> ToHomeStateModel(this EventDataResponseDT
2122
Title = s.Title,
2223
TrackName = eventData.Tracks.Single(tr => tr.Id == s.TrackId).Name,
2324
RoomName = eventData.Tracks.Single(tr => tr.Id == s.TrackId).RoomName,
24-
IsBookmarked = sessionBookmarks.Contains(s.Id)
25+
IsBookmarked = sessionBookmarks.Contains(s.Id),
26+
Length = ts.To.Subtract(ts.From)
2527
})
2628
.OrderBy(s => s.TrackName)
2729
.ToImmutableList()

0 commit comments

Comments
 (0)