826312befe
Clears CommentChecker findings in src/ (3,280 -> 209, the remainder being false positives like PLC-5/IEEE-754/M0.0) by adding missing summaries/params/returns, normalising inheritdoc usage, and removing Gitea/review tracking IDs while keeping the rationale they annotated. Comment-only: comment-stripped sources are identical to the parent commit.
35 lines
1.5 KiB
C#
35 lines
1.5 KiB
C#
namespace ZB.MOM.WW.OtOpcUa.AdminUI.Components.Shared;
|
|
|
|
/// <summary>
|
|
/// One entry in a <see cref="ContextMenu"/>. An item is either an actionable
|
|
/// row (<see cref="Label"/> + <see cref="OnClick"/>) or a visual divider
|
|
/// (<see cref="IsSeparator"/> = true, in which case the other members are
|
|
/// ignored). Use the <see cref="Separator"/> factory for dividers.
|
|
/// </summary>
|
|
public sealed class ContextMenuItem
|
|
{
|
|
/// <summary>Text shown for the row.</summary>
|
|
public string Label { get; init; } = "";
|
|
|
|
/// <summary>
|
|
/// Invoked when the row is activated (click / Enter). Async so per-node menu
|
|
/// actions (delete, redeploy, rename) can await their service calls without an
|
|
/// exception-swallowing <c>async void</c>; the menu awaits this and re-renders.
|
|
/// A synchronous handler returns <see cref="Task.CompletedTask"/>.
|
|
/// </summary>
|
|
public Func<Task>? OnClick { get; init; }
|
|
|
|
/// <summary>Optional leading icon — an emoji or single glyph.</summary>
|
|
public string? Icon { get; init; }
|
|
|
|
/// <summary>Renders the row greyed-out and non-interactive.</summary>
|
|
public bool Disabled { get; init; }
|
|
|
|
/// <summary>When true this entry is a horizontal divider, not a row.</summary>
|
|
public bool IsSeparator { get; init; }
|
|
|
|
/// <summary>A horizontal divider between groups of items.</summary>
|
|
/// <returns>A separator menu item.</returns>
|
|
public static ContextMenuItem Separator() => new() { IsSeparator = true };
|
|
}
|