Files
chapter-organizer/WebApp/Components/Shared/Components/InteractiveChip.razor
T
poprhythm 6bc4c2e7f2 Add TeamMeetingHistory entity, service, and UI components for meeting history management
This commit introduces the TeamMeetingHistory entity, including its configuration and database migrations. A new ITeamMeetingHistoryService interface and its implementation, TeamMeetingHistoryService, are added to handle CRUD operations for meeting histories. Additionally, UI components such as History.razor, MeetingHistoryDetailDialog, and SaveMeetingHistoryDialog are created to facilitate viewing and saving meeting histories. The integration of INoteNamingService enhances note management for meeting records, improving overall functionality and user experience in the application.
2026-01-19 22:02:59 -05:00

75 lines
2.2 KiB
Plaintext

@namespace WebApp.Components.Shared.Components
@using Microsoft.AspNetCore.Components.Web
<MudStack Row="true" Spacing="0" AlignItems="AlignItems.Center"
Style="position: relative; display: inline-flex;"
Class="@WrapperClass"
@onmouseenter="@(() => _isHovered = true)"
@onmouseleave="@(() => _isHovered = false)"
@ontouchstart="@HandleTouchStart">
<MudChip T="string"
Size="@Size"
Color="@Color"
Variant="@Variant"
Style="@Style"
Class="@Class">
<MudStack Row="true" Spacing="1" AlignItems="AlignItems.Center">
@ChildContent
@if (ControlContent != null)
{
@* Show on touch for mobile/touch devices (below Md) *@
<MudHidden Breakpoint="Breakpoint.MdAndUp">
@if (_isTouched || AlwaysShowControls)
{
@ControlContent
}
</MudHidden>
@* Show on hover for desktop devices (MdAndUp) *@
<MudHidden Breakpoint="Breakpoint.MdAndUp" Invert="true">
@if (_isHovered || AlwaysShowControls)
{
@ControlContent
}
</MudHidden>
}
</MudStack>
</MudChip>
</MudStack>
@code {
[Parameter]
public required RenderFragment ChildContent { get; set; }
[Parameter]
public RenderFragment? ControlContent { get; set; }
[Parameter]
public Size Size { get; set; } = Size.Small;
[Parameter]
public Color Color { get; set; } = Color.Default;
[Parameter]
public Variant Variant { get; set; } = Variant.Text;
[Parameter]
public string? Style { get; set; }
[Parameter]
public string? Class { get; set; }
[Parameter]
public string? WrapperClass { get; set; }
[Parameter]
public bool AlwaysShowControls { get; set; } = false;
private bool _isHovered = false;
private bool _isTouched = false;
private void HandleTouchStart(TouchEventArgs e)
{
_isTouched = !_isTouched;
StateHasChanged();
}
}