Skip to content

Commit 3b27838

Browse files
committed
Improvements to sidebar on mobile with swup
* Make sure the sidebar does not flash on load * Close the sidebar on click on mobile
1 parent 419e935 commit 3b27838

File tree

6 files changed

+72
-74
lines changed

6 files changed

+72
-74
lines changed

assets/js/entry/html.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import '../handlebars/helpers'
33
import { onDocumentReady } from '../helpers'
44
import { initialize as initTabsets } from '../tabsets'
55
import { initialize as initContent } from '../content'
6-
import { initialize as initSidebarDrawer } from '../sidebar/sidebar-drawer'
7-
import { initialize as initSidebarContent } from '../sidebar/sidebar-list'
8-
import { initialize as initSidebarSearch } from '../search-bar'
6+
import { initialize as initSidebarDrawer, update as updateSidebarDrawer } from '../sidebar/sidebar-drawer'
7+
import { initialize as initSidebarContent, update as updateSidebarContent } from '../sidebar/sidebar-list'
8+
import { initialize as initSearch } from '../search-bar'
99
import { initialize as initVersions } from '../sidebar/sidebar-version-select'
1010
import { initialize as initSearchPage } from '../search-page'
1111
import { initialize as initTheme } from '../theme'
@@ -51,7 +51,8 @@ onDocumentReady(() => {
5151
},
5252
hooks: {
5353
'page:view': () => {
54-
initSidebarContent()
54+
updateSidebarDrawer()
55+
updateSidebarContent()
5556
initSearchPage()
5657
}
5758
},
@@ -63,7 +64,7 @@ onDocumentReady(() => {
6364
initVersions()
6465
initSidebarDrawer()
6566
initSidebarContent()
66-
initSidebarSearch()
67+
initSearch()
6768
initModal()
6869
initKeyboardShortcuts()
6970
initQuickSwitch()

assets/js/sidebar/sidebar-drawer.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,16 @@ const state = {
3333
sidebarPreference: userPref.NO_PREF
3434
}
3535

36-
/**
37-
* Initializes the toggleable sidebar drawer.
38-
*/
3936
export function initialize () {
4037
setDefaultSidebarState()
4138
observeResizing()
4239
addEventListeners()
4340
}
4441

42+
export function update () {
43+
setDefaultSidebarState()
44+
}
45+
4546
function observeResizing () {
4647
const sidebarWidth = sessionStorage.getItem('sidebar_width')
4748

assets/js/sidebar/sidebar-list.js

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,22 @@ const SIDEBAR_TYPE = {
88
tasks: 'tasks'
99
}
1010

11-
let sidebarInitialized = false
12-
1311
const SIDEBAR_TAB_TYPES = [SIDEBAR_TYPE.extras, SIDEBAR_TYPE.modules, SIDEBAR_TYPE.tasks]
1412
const sidebarNodeListSelector = type => `#${type}-full-list`
1513

16-
/**
17-
* Initializes the sidebar navigation list.
18-
*/
1914
export function initialize () {
15+
update()
16+
addEventListeners()
17+
}
18+
19+
export function update () {
2020
SIDEBAR_TAB_TYPES.forEach(type => {
2121
renderSidebarNodeList(getSidebarNodes(), type)
2222
})
2323

2424
markActiveSidebarTab(getCurrentPageSidebarType())
2525
markCurrentHashInSidebar()
2626
scrollNodeListToCurrentCategory()
27-
28-
if (sidebarInitialized) return
29-
sidebarInitialized = true
30-
addEventListeners()
3127
}
3228

3329
/**

formatters/html/dist/html-HURPSPNJ.js

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

formatters/html/dist/html-XFWJYN4N.js

Lines changed: 0 additions & 56 deletions
This file was deleted.

lib/ex_doc/formatter/html/templates/head_template.eex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<script async src="<%= asset_rev config.output, "dist/html-*.js" %>"></script>
2525
<%= before_closing_head_tag(config, :html) %>
2626
</head>
27-
<body>
27+
<body class="sidebar-closed">
2828
<script>
2929
<% # Immediately apply night mode preference to avoid a flash effect %>
3030
try {

0 commit comments

Comments
 (0)