|
4 | 4 | @using PrompterOne.Shared.Localization |
5 | 5 | @inject IStringLocalizer<SharedResource> Localizer |
6 | 6 |
|
7 | | -<div class="lib-sidebar" data-test="@UiTestIds.Library.Sidebar"> |
| 7 | +<aside id="library-sidebar-panel" |
| 8 | + class="lib-sidebar" |
| 9 | + aria-hidden="@AriaHiddenValue" |
| 10 | + data-sidebar-state="@(IsOpen ? "open" : "closed")" |
| 11 | + data-test="@UiTestIds.Library.Sidebar"> |
| 12 | + <div class="lib-sidebar-topbar"> |
| 13 | + <button class="lib-sidebar-close" |
| 14 | + type="button" |
| 15 | + title="@Text(UiTextKey.LibraryCloseSidebar)" |
| 16 | + aria-label="@Text(UiTextKey.LibraryCloseSidebar)" |
| 17 | + data-test="@UiTestIds.Library.SidebarClose" |
| 18 | + @onclick="HandleCloseAsync"> |
| 19 | + <UiIcon Kind="UiIconKind.PanelLeft" Size="16" /> |
| 20 | + </button> |
| 21 | + </div> |
8 | 22 | <nav class="lib-nav"> |
9 | 23 | <a class="nav-item @(IsAllSelected ? "active" : null)" |
10 | 24 | @onclick="HandleSelectAllAsync" |
|
86 | 100 | @Text(UiTextKey.LibrarySettings) |
87 | 101 | </a> |
88 | 102 | </nav> |
89 | | -</div> |
| 103 | +</aside> |
90 | 104 |
|
91 | 105 | @code { |
92 | 106 | private const string ActiveStateValue = "active"; |
|
100 | 114 |
|
101 | 115 | [Parameter, EditorRequired] public bool IsFavoritesSelected { get; set; } |
102 | 116 |
|
| 117 | + [Parameter, EditorRequired] public bool IsOpen { get; set; } |
| 118 | + |
103 | 119 | [Parameter, EditorRequired] public int FavoriteScriptCount { get; set; } |
104 | 120 |
|
105 | 121 | [Parameter, EditorRequired] public LibraryOrganizationTerminology OrganizationTerminology { get; set; } = |
|
111 | 127 |
|
112 | 128 | [Parameter, EditorRequired] public EventCallback<string> OnSelectFolder { get; set; } |
113 | 129 |
|
| 130 | + [Parameter, EditorRequired] public EventCallback OnClose { get; set; } |
| 131 | + |
114 | 132 | [Parameter, EditorRequired] public EventCallback OnStartCreateFolder { get; set; } |
115 | 133 |
|
| 134 | + private string AriaHiddenValue => IsOpen ? "false" : "true"; |
| 135 | + |
116 | 136 | private Task HandleSelectAllAsync() => OnSelectFolder.InvokeAsync(LibrarySelectionKeys.All); |
117 | 137 |
|
118 | 138 | private Task HandleSelectFavoritesAsync() => OnSelectFolder.InvokeAsync(LibrarySelectionKeys.Favorites); |
|
122 | 142 |
|
123 | 143 | private Task HandleStartCreateAsync() => OnStartCreateFolder.InvokeAsync(); |
124 | 144 |
|
| 145 | + private Task HandleCloseAsync() => OnClose.InvokeAsync(); |
| 146 | + |
125 | 147 | private string GetOrganizationModeClass(LibraryOrganizationMode mode) => |
126 | 148 | mode == SelectedOrganizationMode |
127 | 149 | ? "lib-organization-option active" |
|
0 commit comments