From 8ee3550e274a2a65412d56b3942bb51d751c8ba3 Mon Sep 17 00:00:00 2001
From: awu0403 <76416779+awu0403@users.noreply.github.com>
Date: Thu, 16 Oct 2025 11:50:11 +0800
Subject: [PATCH] optimize import page ui (#8307)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* optimize import page ui
* update
* optimize
* optimize
---------
Co-authored-by: 孙永强 <11704063+s-yongqiang@user.noreply.gitee.com>
Co-authored-by: Michael An <1822852997@qq.com>
---
frontend/src/pages/wiki2/css/wiki-nav.css | 1 +
.../wiki2/wiki-nav/pages/page-dropdownmenu.js | 44 ++++++++++++++++--
frontend/src/pages/wiki2/wiki-nav/wiki-nav.js | 45 ++++++++++++++++---
3 files changed, 81 insertions(+), 9 deletions(-)
diff --git a/frontend/src/pages/wiki2/css/wiki-nav.css b/frontend/src/pages/wiki2/css/wiki-nav.css
index e0897913d1..5cafbac768 100644
--- a/frontend/src/pages/wiki2/css/wiki-nav.css
+++ b/frontend/src/pages/wiki2/css/wiki-nav.css
@@ -223,6 +223,7 @@
.wiki-nav .page-operation-dropdown .page-operation-dropdown-menu {
margin-left: -15px;
margin-top: 4px;
+ overflow-y: visible !important;
}
.page-operation-dropdown-menu .divider {
diff --git a/frontend/src/pages/wiki2/wiki-nav/pages/page-dropdownmenu.js b/frontend/src/pages/wiki2/wiki-nav/pages/page-dropdownmenu.js
index c01a0a52a3..3b87849610 100644
--- a/frontend/src/pages/wiki2/wiki-nav/pages/page-dropdownmenu.js
+++ b/frontend/src/pages/wiki2/wiki-nav/pages/page-dropdownmenu.js
@@ -23,6 +23,9 @@ export default class PageDropdownMenu extends Component {
constructor(props) {
super(props);
this.pageNameMap = this.calculateNameMap();
+ this.state = {
+ isImportPageMenuShown: false,
+ };
}
calculateNameMap = () => {
@@ -33,6 +36,20 @@ export default class PageDropdownMenu extends Component {
}, {});
};
+ showImportPageMenu = (e) => {
+ if (e) e.stopPropagation();
+ if (!this.state.isImportPageMenuShown) {
+ this.setState({ isImportPageMenuShown: true });
+ }
+ };
+
+ hideImportPageMenu = (e) => {
+ if (e) e.stopPropagation();
+ if (this.state.isImportPageMenuShown) {
+ this.setState({ isImportPageMenuShown: false });
+ }
+ };
+
onDropdownToggle = (evt) => {
evt.stopPropagation();
this.props.toggle();
@@ -61,11 +78,11 @@ export default class PageDropdownMenu extends Component {
this.props.duplicatePage({ from_page_id: page.id }, () => {}, this.duplicatePageFailure);
};
- importPage = () => {
+ importPage = (suffix) => {
const { page } = this.props;
const fileInput = document.createElement('input');
fileInput.type = 'file';
- fileInput.accept = '.docx,.md';
+ fileInput.accept = suffix;
fileInput.style.display = 'none';
fileInput.addEventListener('change', (e) => {
@@ -148,7 +165,28 @@ export default class PageDropdownMenu extends Component {
{this.renderItem(this.addPageBelow, 'enlarge', gettext('Add page below'))}
{this.renderItem(this.duplicatePage, 'copy1', gettext('Duplicate page'))}
{canDeletePage && this.renderItem(this.onDeletePage, 'delete1', gettext('Delete page'))}
- {this.renderItem(this.importPage, 'import-sdoc', gettext('Import page'))}
+