summaryrefslogtreecommitdiffstats
path: root/web_src/js
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-06-24 03:51:43 +0800
committerGitHub <noreply@github.com>2023-06-23 15:51:43 -0400
commit62ab55baccfcd11d1f8b5449c1620354b8a7640e (patch)
treede585fe6fa6a6f47d8fe143bc14213763a54dd26 /web_src/js
parent3c7f5ed7b5bff347198cbb26492e6354ea42733b (diff)
downloadgitea-62ab55baccfcd11d1f8b5449c1620354b8a7640e.tar.gz
gitea-62ab55baccfcd11d1f8b5449c1620354b8a7640e.zip
Improve wiki sidebar and TOC (#25460)
Close #20976 Close #20975 1. Fix the bug: the TOC in footer was incorrectly rendered as main content's TOC 2. Fix the layout: on mobile, the TOC is put above the main content, while the sidebar is put below the main content 3. Auto collapse the TOC on mobile ps: many styles of "wiki.css" are moved from old css files, so leave nits to following PRs.
Diffstat (limited to 'web_src/js')
-rw-r--r--web_src/js/features/repo-wiki.js12
-rw-r--r--web_src/js/modules/fomantic.js2
2 files changed, 14 insertions, 0 deletions
diff --git a/web_src/js/features/repo-wiki.js b/web_src/js/features/repo-wiki.js
index c37da45994..58036fde37 100644
--- a/web_src/js/features/repo-wiki.js
+++ b/web_src/js/features/repo-wiki.js
@@ -1,6 +1,7 @@
import $ from 'jquery';
import {initMarkupContent} from '../markup/content.js';
import {validateTextareaNonEmpty, initComboMarkdownEditor} from './comp/ComboMarkdownEditor.js';
+import {fomanticMobileScreen} from '../modules/fomantic.js';
const {csrfToken} = window.config;
@@ -70,6 +71,17 @@ async function initRepoWikiFormEditor() {
});
}
+function collapseWikiTocForMobile(collapse) {
+ if (collapse) {
+ document.querySelector('.wiki-content-toc details')?.removeAttribute('open');
+ }
+}
+
export function initRepoWikiForm() {
+ if (!document.querySelector('.page-content.repository.wiki')) return;
+
+ fomanticMobileScreen.addEventListener('change', (e) => collapseWikiTocForMobile(e.matches));
+ collapseWikiTocForMobile(fomanticMobileScreen.matches);
+
initRepoWikiFormEditor();
}
diff --git a/web_src/js/modules/fomantic.js b/web_src/js/modules/fomantic.js
index 1495b311ca..5988584aca 100644
--- a/web_src/js/modules/fomantic.js
+++ b/web_src/js/modules/fomantic.js
@@ -3,6 +3,8 @@ import {initAriaCheckboxPatch} from './aria/checkbox.js';
import {initAriaDropdownPatch} from './aria/dropdown.js';
import {svg} from '../svg.js';
+export const fomanticMobileScreen = window.matchMedia('only screen and (max-width: 767.98px)');
+
export function initGiteaFomantic() {
// Silence fomantic's error logging when tabs are used without a target content element
$.fn.tab.settings.silent = true;