• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / blurts-server / #11912

pending completion
#11912

push

circleci

web-flow
Merge pull request #2755 from mozilla/MNTOR-1046-User-menu

MNTOR-1046: Add user menu

282 of 1172 branches covered (24.06%)

Branch coverage included in aggregate %.

27 of 27 new or added lines in 4 files covered. (100.0%)

959 of 3117 relevant lines covered (30.77%)

2.5 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/client/js/user-menu.js
1
const userMenuButton = document.querySelector('.user-menu-button')
×
2
const userMenuPopover = document.querySelector('.user-menu-popover')
×
3
const userMenuWrapper = document.querySelector('.user-menu-wrapper')
×
4

5
function handleBlur (event, onBlur) {
6
  const currentTarget = event.currentTarget
×
7

8
  requestAnimationFrame(() => {
×
9
    const isChildElement = currentTarget.contains(document.activeElement)
×
10

11
    if (!isChildElement) {
×
12
      onBlur()
×
13
    }
14
  })
15
}
16

17
function handleMenuButton () {
18
  if (!userMenuPopover || !userMenuWrapper) {
×
19
    return
×
20
  }
21

22
  if (userMenuPopover.hasAttribute('hidden')) {
×
23
    // Show popover
24
    userMenuPopover.setAttribute('aria-expanded', true)
×
25
    userMenuPopover.removeAttribute('hidden')
×
26

27
    // Handle onblur
28
    userMenuWrapper.addEventListener('blur', (event) => handleBlur(event, handleMenuButton))
×
29
    userMenuWrapper.focus()
×
30
  } else {
31
    // Hide popover
32
    userMenuPopover.setAttribute('aria-expanded', false)
×
33
    userMenuPopover.setAttribute('hidden', '')
×
34

35
    userMenuButton.focus()
×
36
  }
37
}
38

39
if (userMenuButton) {
×
40
  userMenuButton.addEventListener('click', handleMenuButton)
×
41
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc