style: add global user-select:none and PDF preview popup styles
app.css: Disable text/image selection globally; re-enable for input/textarea/[contenteditable] so typing and pasting still work. sender-page.css: Add .sender-preview-popup, .sender-preview-viewer-wrap and .sender-preview-pdf-viewer rules. DxPdfViewer requires an explicit pixel-height parent — percentage heights resolve to 0 inside popup body flex containers and cause DevExpress NullReferenceExceptions.
This commit is contained in:
@@ -1,5 +1,17 @@
|
|||||||
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');
|
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');
|
||||||
|
|
||||||
|
/* Disable text/image selection globally */
|
||||||
|
* {
|
||||||
|
user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Re-enable for inputs where typing/pasting must work */
|
||||||
|
input, textarea, [contenteditable] {
|
||||||
|
user-select: text;
|
||||||
|
-webkit-user-select: text;
|
||||||
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|||||||
@@ -479,3 +479,37 @@
|
|||||||
border-color: rgba(239, 68, 68, 0.3);
|
border-color: rgba(239, 68, 68, 0.3);
|
||||||
color: #fca5a5;
|
color: #fca5a5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ── PDF Preview Popup ─────────────────────────────────────────────────── */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DxPdfViewer needs an explicit pixel-height parent — percentage heights
|
||||||
|
* resolve to 0 inside popup body flex containers and cause DevExpress
|
||||||
|
* ProcessDocumentChangedAsync NullReferenceExceptions.
|
||||||
|
*
|
||||||
|
* Strategy:
|
||||||
|
* - Popup: 80vw × 90vh
|
||||||
|
* - Body: fills remaining space between header (~52px) and footer (~58px)
|
||||||
|
* - Wrapper: flex column, explicit height = calc(90vh - 52px - 58px - 2px)
|
||||||
|
* - DxPdfViewer: flex:1, overflow handled internally by DevExpress (scroll works)
|
||||||
|
*/
|
||||||
|
.sender-preview-popup .dxbl-popup-body {
|
||||||
|
padding: 0 !important;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sender-preview-viewer-wrap {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(90vh - 114px); /* 52px header + 58px footer + 4px borders */
|
||||||
|
min-height: 480px;
|
||||||
|
overflow: hidden; /* inner DxPdfViewer manages its own scroll */
|
||||||
|
}
|
||||||
|
|
||||||
|
.sender-preview-pdf-viewer {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user