diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverPage.razor index 120b99f9..e411bee0 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverPage.razor @@ -334,7 +334,6 @@ CssClass="envelope-dx-pdf-viewer" DocumentContent="@_pdfDocumentContent" ZoomLevel="@_viewerZoomLevel" - ZoomLevelChanged="OnViewerZoomLevelChanged" IsSinglePagePreview="true" /> }
@@ -749,21 +748,6 @@ await SetZoom(requestedZoom); } - async Task OnViewerZoomLevelChanged(double newZoomLevel) - { - _viewerZoomLevel = newZoomLevel; - - if (newZoomLevel > 0) - { - _currentZoom = (int)Math.Round(newZoomLevel * 100, MidpointRounding.AwayFromZero); - } - - await JSRuntime.InvokeVoidAsync("pdfViewer.setViewState", _currentPage, _currentZoom); - await Task.Delay(150); - await RenderSignatureButtonsAsync(); - await InvokeAsync(StateHasChanged); - } - async Task NextPage() { if (_currentPage >= _totalPages) diff --git a/RECEIVER_PDF_VIEWER_CONTEXT.md b/RECEIVER_PDF_VIEWER_CONTEXT.md index ea46ee2c..e6c868df 100644 --- a/RECEIVER_PDF_VIEWER_CONTEXT.md +++ b/RECEIVER_PDF_VIEWER_CONTEXT.md @@ -941,13 +941,12 @@ That is the safest first vertical slice because: ### 9. Verified DevExpress API findings and current progress -The following points are now verified from DevExpress documentation for `DxPdfViewer`: +The following points are now verified for the currently installed `DevExpress.Blazor.PdfViewer` package version `25.2.3`: - `ZoomLevel` is a real component parameter -- positive `ZoomLevel` values are interpreted as percentages -- `ZoomLevelChanged` is supported and should be used to synchronize viewer zoom with page state -- `CustomizeToolbar` can clear all built-in toolbar items through `ToolbarModel.AllItems.Clear()` +- normal positive zoom values used in this receiver page must be treated as factors in the live UI flow here (`1.5` = `150%`) - `ActivePageIndex` is read-only information and is not a page-navigation parameter +- `ZoomLevelChanged` must not be used in this workspace because the current installed component surface does not expose a matching incoming parameter on `DxPdfViewer` ### 10. Recovery progress update @@ -955,16 +954,15 @@ The first functional recovery step is zoom restoration. Implemented direction: -- bind custom receiver toolbar zoom controls to `DxPdfViewer.ZoomLevel` -- synchronize zoom changes back into `_currentZoom` through `ZoomLevelChanged` +- bind receiver zoom state to `DxPdfViewer.ZoomLevel` - remove competing custom JS ctrl+wheel zoom logic -- keep overlay redraw pipeline after confirmed zoom changes +- keep overlay redraw pipeline in place +- avoid `ZoomLevelChanged` usage because it is not available on the installed `25.2.3` `DxPdfViewer` surface Expected outcome after this step: -- toolbar zoom buttons visibly affect the DevExpress viewer -- zoom slider visibly affects the DevExpress viewer -- overlay refresh is triggered from real viewer zoom state instead of guessed zoom state +- built-in DevExpress zoom UI can be used without the runtime parameter exception +- custom zoom duplication is removed ### 11. Additional findings after first zoom integration attempt