Skip to content

Commit d84fe8b

Browse files
committed
fix: white space bug
1 parent 3046905 commit d84fe8b

File tree

2 files changed

+31
-14
lines changed

2 files changed

+31
-14
lines changed

src/filelist.scss

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,20 @@
1919
* along with this program. If not, see <http://www.gnu.org/licenses/>.
2020
*/
2121

22-
// Hide the entire files-list when there are no real files (only .SECUREMAIL.html)
23-
.sendent-hide-filelist {
24-
display: none !important;
22+
// When securemail content is present, disable files-list internal scrolling
23+
// so only the page scrolls. This prevents nested scroll contexts.
24+
.sendent-has-securemail {
25+
overflow: visible !important;
26+
}
27+
28+
// When there are no real files, collapse the files-list entirely
29+
// (hides table headers, empty state, and whitespace).
30+
.sendent-no-files {
31+
.files-list__table,
32+
.files-list__empty,
33+
.empty-content {
34+
display: none !important;
35+
}
2536
}
2637

2738
#sendent-content {
@@ -31,7 +42,6 @@
3142
max-width: 100%;
3243
width: 100%;
3344
box-sizing: border-box;
34-
flex-shrink: 0;
3545

3646
.sendent-content__header {
3747
margin: 16px 0 8px;

src/filelist.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,25 @@ class FooterFile {
7272
const container = document.createElement('div')
7373
container.id = CONTENT_ID
7474

75-
const filesList = document.querySelector('.files-list')
76-
|| document.querySelector('.files-filestable')?.parentElement
77-
|| document.querySelector('#filestable')?.parentElement
75+
const anchor = document.querySelector('.files-list__table')
76+
|| document.querySelector('.files-filestable')
77+
|| document.querySelector('#filestable')
7878

79-
if (!filesList) return
79+
if (!anchor) return
8080

81-
// When there are no real files, hide the entire files-list (table headers, empty state, whitespace)
82-
if (!hasRealFiles) {
83-
filesList.classList.add('sendent-hide-filelist')
81+
const filesList = anchor.closest('.files-list') ?? anchor.parentElement
82+
83+
if (!hasRealFiles && filesList) {
84+
// No real files — hide empty state and table headers
85+
filesList.classList.add('sendent-no-files')
8486
}
8587

86-
// Insert after .files-list so we're outside its scroll context
87-
filesList.insertAdjacentElement('afterend', container)
88+
// Insert inside files-list, after the table. Mark files-list so we can
89+
// disable its internal scrolling and let only the page scroll.
90+
if (filesList) {
91+
filesList.classList.add('sendent-has-securemail')
92+
}
93+
anchor.insertAdjacentElement('afterend', container)
8894

8995
// Show loading spinner
9096
const spinner = document.createElement('span')
@@ -167,7 +173,8 @@ class FooterFile {
167173
* Restores the files-list to its default state.
168174
*/
169175
function restoreFilesList() {
170-
document.querySelector('.sendent-hide-filelist')?.classList.remove('sendent-hide-filelist')
176+
document.querySelector('.sendent-no-files')?.classList.remove('sendent-no-files')
177+
document.querySelector('.sendent-has-securemail')?.classList.remove('sendent-has-securemail')
171178
}
172179

173180
let debounceTimer: ReturnType<typeof setTimeout> | null = null

0 commit comments

Comments
 (0)