Skip to content

Commit 9f87941

Browse files
committed
Adjust select width
Fix openVersionSelect function
1 parent 7eefed4 commit 9f87941

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

assets/css/sidebar.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,16 @@
125125
top: 3px;
126126
}
127127

128+
.sidebar-versionsLabel {
129+
position: relative;
130+
cursor: pointer;
131+
}
132+
133+
.sidebar-versionsText {
134+
padding: 0 0 0 12px;
135+
color: var(--sidebarMuted);
136+
}
137+
128138
.sidebar .sidebar-list-nav {
129139
display: flex;
130140
margin: 0;

assets/js/handlebars/templates/versions-dropdown.handlebars

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
<label>
33
<span class="sidebar-projectVersionsDropdownCaret" aria-hidden="true">&#x25bc;</span>
44
<span class="sr-only">Project version</span>
5-
<select class="sidebar-projectVersionsDropdown">
5+
<span class="sidebar-versionsText"></span>
6+
<select class="sidebar-projectVersionsDropdown" hidden>
67
{{#each nodes}}
78
<option translate="no" value="{{url}}"{{#if isCurrentVersion}} selected disabled{{/if}}>
89
{{version}}

assets/js/sidebar/sidebar-version-select.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import versionsDropdownTemplate from '../handlebars/templates/versions-dropdown.
44

55
const VERSIONS_CONTAINER_SELECTOR = '.sidebar-projectVersion'
66
const VERSIONS_DROPDOWN_SELECTOR = '.sidebar-projectVersionsDropdown'
7+
const VERSIONS_TEXT_SELECTOR = '.sidebar-versionsText'
78

89
/**
910
* Initializes selectable version list if `versionNodes` have been configured.
@@ -22,9 +23,22 @@ export function initialize () {
2223
const nodes = decorateVersionNodes(versionNodes, currentVersion)
2324

2425
renderVersionsDropdown({ nodes, latestVersion })
26+
initializeVersionSelect()
2527
}
2628
}
2729

30+
function initializeVersionSelect () {
31+
const select = qs(VERSIONS_DROPDOWN_SELECTOR)
32+
const text = qs(VERSIONS_TEXT_SELECTOR)
33+
34+
text.textContent = select.options[select.selectedIndex].text
35+
36+
text.addEventListener('click', (event) => {
37+
if (event.target === select) return
38+
openVersionSelect()
39+
})
40+
}
41+
2842
function renderVersionsDropdown ({ nodes, latestVersion }) {
2943
const versionsContainer = qs(VERSIONS_CONTAINER_SELECTOR)
3044
const versionsDropdownHtml = versionsDropdownTemplate({ nodes, latestVersion })
@@ -84,6 +98,18 @@ function handleVersionSelected (event) {
8498
*/
8599
export function openVersionSelect () {
86100
const select = qs(VERSIONS_DROPDOWN_SELECTOR)
101+
const text = qs(VERSIONS_TEXT_SELECTOR)
102+
103+
select.hidden = false
104+
text.hidden = true
105+
106+
const hideSelect = () => {
107+
select.hidden = true
108+
text.hidden = false
109+
select.removeEventListener('blur', hideSelect)
110+
}
111+
112+
select.addEventListener('blur', hideSelect)
87113

88114
if (select) {
89115
select.focus()

0 commit comments

Comments
 (0)