diff --git a/WebApp/Components/Shared/Components/PageNoteButton.razor b/WebApp/Components/Shared/Components/PageNoteButton.razor
index 37dffb7..e717670 100644
--- a/WebApp/Components/Shared/Components/PageNoteButton.razor
+++ b/WebApp/Components/Shared/Components/PageNoteButton.razor
@@ -3,18 +3,45 @@
@inject IDialogService DialogService
@implements IAsyncDisposable
-
- @if (!string.IsNullOrEmpty(ButtonText))
- {
- @ButtonText
- }
-
+
{ if (_hasContent) _popoverOpen = true; })"
+ @onmouseleave="@(() => _popoverOpen = false)"
+ style="display: inline-block;">
+
+ @if (!string.IsNullOrEmpty(ButtonText))
+ {
+ @ButtonText
+ }
+
+
+
+
+ @if (_hasContent && !string.IsNullOrWhiteSpace(_noteContent))
+ {
+ _popoverOpen = true)"
+ @onmouseleave="@(() => _popoverOpen = false)">
+ @PageIdentifier
+
+
+ @((MarkupString)MarkdownHelper.ToHtml(_noteContent))
+
+
+ }
+
+
@code {
[Parameter]
@@ -39,6 +66,9 @@
private string TooltipText => Tooltip ?? $"Page notes for {PageIdentifier}";
private bool _hasContent = false;
private int _noteId = 0;
+ private string _noteContent = string.Empty;
+ private bool _popoverOpen = false;
+ private ElementReference _anchorElement;
private Color ButtonColor => _hasContent ? Color.Success : (Variant == Variant.Filled ? Color.Primary : Color.Default);
private CancellationTokenSource? _cancellationTokenSource;
private bool _isDisposed = false;
@@ -62,6 +92,7 @@
var note = await NotesService.GetPageNoteAsync(PageIdentifier);
_hasContent = note != null && !string.IsNullOrWhiteSpace(note.Content);
_noteId = note?.Id ?? 0;
+ _noteContent = note?.Content ?? string.Empty;
if (!_isDisposed)
{