04-page-versions.js 883 Bytes
Newer Older
hyeryung's avatar
hyeryung committed
1 2 3 4 5 6 7
;(function () {
  'use strict'

  var toggle = document.querySelector('.page-versions .version-menu-toggle')
  if (!toggle) return

  var selector = document.querySelector('.page-versions')
minseok.park's avatar
minseok.park committed
8 9 10
  var backdrop = document.querySelector('.backdrop')
  var versionMenu = document.querySelector('.version-menu')
  var versions = versionMenu?.querySelectorAll('.version')
hyeryung's avatar
hyeryung committed
11 12

  toggle.addEventListener('click', function (e) {
minseok.park's avatar
minseok.park committed
13 14
    if (!versions.length) return

hyeryung's avatar
hyeryung committed
15
    selector.classList.toggle('is-active')
minseok.park's avatar
minseok.park committed
16
    backdrop.classList.toggle('is-active')
hyeryung's avatar
hyeryung committed
17 18 19
    e.stopPropagation() // trap event
  })

minseok.park's avatar
minseok.park committed
20 21 22 23 24
  backdrop.addEventListener('click', function () {
    selector.classList.remove('is-active')
    backdrop.classList.remove('is-active')
  })

hyeryung's avatar
hyeryung committed
25 26
  document.documentElement.addEventListener('click', function () {
    selector.classList.remove('is-active')
minseok.park's avatar
minseok.park committed
27
    backdrop.classList.remove('is-active')
hyeryung's avatar
hyeryung committed
28 29
  })
})()