|
7 | 7 | @inject IDispatcher Dispatcher |
8 | 8 |
|
9 | 9 | <MudList Clickable="true"> |
10 | | - @foreach(var timeSlot in State.Value.EventMetaData) |
| 10 | + @foreach (var timeSlot in State.Value.EventMetaData) |
11 | 11 | { |
12 | 12 | <MudListSubheader Class="pb-0 pl-1 border-b border-solid mud-border-primary"> |
13 | 13 | <MudText Typo="Typo.h6"> |
14 | 14 | @timeSlot.From.ToString("h:mm") |
15 | 15 | @timeSlot.From.ToString("tt").ToLowerInvariant() |
16 | 16 | </MudText> |
17 | 17 | </MudListSubheader> |
18 | | - @if(timeSlot.Info is not null) |
| 18 | + @if (timeSlot.Info is not null) |
19 | 19 | { |
20 | 20 | <MudListItem Class="ml-6"> |
21 | 21 | <MudText Typo="Typo.h5">@timeSlot.Info</MudText> |
22 | 22 | </MudListItem> |
23 | 23 | } |
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))) |
25 | 26 | { |
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> |
35 | 59 | </MudListItem> |
36 | 60 |
|
37 | | - @if (sessionItem.index != timeSlot.Sessions.Count -1) |
| 61 | + @if (sessionItem.index != timeSlot.Sessions.Count - 1) |
38 | 62 | { |
39 | | - <MudDivider /> |
| 63 | + <MudDivider/> |
40 | 64 | } |
41 | 65 | } |
42 | 66 | } |
43 | 67 |
|
44 | 68 | </MudList> |
45 | 69 |
|
46 | 70 | @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 | + |
51 | 84 | } |
52 | 85 |
|
53 | 86 | @code { |
54 | | - void HandleViewSession(int sessionId) => NavigationManager.NavigateTo($"session/{sessionId}"); |
| 87 | + |
| 88 | + void HandleViewSession(int sessionId) |
| 89 | + { |
| 90 | + NavigationManager.NavigateTo($"session/{sessionId}"); |
| 91 | + } |
55 | 92 |
|
56 | 93 | void HandleToggleSessionBookmarked(Session session) |
57 | 94 | { |
|
0 commit comments