[frontend] Implement list menu component (ISH-392)
This commit is contained in:
parent
80429d399b
commit
ffcffe656a
4 changed files with 48 additions and 0 deletions
18
Iceshrimp.Frontend/Components/Menu.razor
Normal file
18
Iceshrimp.Frontend/Components/Menu.razor
Normal file
|
@ -0,0 +1,18 @@
|
|||
|
||||
@if (_display)
|
||||
{
|
||||
<div class="menu">
|
||||
@ChildContent
|
||||
</div>
|
||||
}
|
||||
|
||||
@code {
|
||||
[Parameter] [EditorRequired] public required RenderFragment ChildContent { get; set; }
|
||||
private bool _display;
|
||||
|
||||
public void Toggle()
|
||||
{
|
||||
_display = !_display;
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
11
Iceshrimp.Frontend/Components/Menu.razor.css
Normal file
11
Iceshrimp.Frontend/Components/Menu.razor.css
Normal file
|
@ -0,0 +1,11 @@
|
|||
.menu {
|
||||
background-color: var(--foreground-color);
|
||||
position: absolute;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 1rem;
|
||||
border: var(--highlight-color) solid 0.1rem;
|
||||
width: 13rem;
|
||||
top: 2.5rem;
|
||||
left: -5rem;
|
||||
|
||||
}
|
16
Iceshrimp.Frontend/Components/MenuElement.razor
Normal file
16
Iceshrimp.Frontend/Components/MenuElement.razor
Normal file
|
@ -0,0 +1,16 @@
|
|||
@using Iceshrimp.Assets.PhosphorIcons
|
||||
|
||||
<div @onclick="OnClick" class="menu-element">
|
||||
<Icon Name="Icon"></Icon>
|
||||
@Text
|
||||
</div>
|
||||
@code {
|
||||
[Parameter] [EditorRequired] public required IconName Icon { get; set; }
|
||||
[Parameter] [EditorRequired] public required RenderFragment Text { get; set; }
|
||||
[Parameter] [EditorRequired] public required EventCallback OnSelect { get; set; }
|
||||
|
||||
private async Task OnClick()
|
||||
{
|
||||
await OnSelect.InvokeAsync();
|
||||
}
|
||||
}
|
3
Iceshrimp.Frontend/Components/MenuElement.razor.css
Normal file
3
Iceshrimp.Frontend/Components/MenuElement.razor.css
Normal file
|
@ -0,0 +1,3 @@
|
|||
.menu-element {
|
||||
display: flex;
|
||||
}
|
Loading…
Add table
Reference in a new issue