diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-05-15 16:30:33 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-15 16:30:33 -0400 |
commit | 2c752fd89d3427da855704406e34c9458d33e832 (patch) | |
tree | 1af110210e39fccc008ef6c31940303a38ddc60a /ext/js/display/search-action-popup-controller.js | |
parent | bc6fb4e7d742b40bb18965f5aa3e8a1a867b068e (diff) |
Popup action search (#1678)
* Set up search page in the action popup
* Fix a style causing incorrect overflow
* Fix error when trying to take a screenshot
* Fix popup size on Firefox
Diffstat (limited to 'ext/js/display/search-action-popup-controller.js')
-rw-r--r-- | ext/js/display/search-action-popup-controller.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/js/display/search-action-popup-controller.js b/ext/js/display/search-action-popup-controller.js new file mode 100644 index 00000000..ab5a4976 --- /dev/null +++ b/ext/js/display/search-action-popup-controller.js @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 Yomichan Authors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +class SearchActionPopupController { + constructor(searchPersistentStateController) { + this._searchPersistentStateController = searchPersistentStateController; + } + + prepare() { + const searchParams = new URLSearchParams(location.search); + if (searchParams.get('action-popup') !== 'true') { return; } + + searchParams.delete('action-popup'); + let search = searchParams.toString(); + if (search.length > 0) { search = `?${search}`; } + const url = `${location.protocol}//${location.host}${location.pathname}${search}${location.hash}`; + history.replaceState(history.state, '', url); + + this._searchPersistentStateController.mode = 'action-popup'; + } +} |