PageSourceSearch

https://www.lisachastain.com/js/uyc/index.js

js lisachastain.com collected 2026-10-04 16:07:54 UTC 1,785 bytes, 62 lines download raw bytes

1let modal = null
2let openButtons = []
3let closeButtons = []
4let backdrops = []
5
6function openModal() {
7  if (!modal) return
8  modal.classList.remove('hidden')
9  modal.classList.add('flex')
10  document.body.style.overflow = 'hidden'
11
12  // Close the mobile menu if it is open
13  const mobileMenu = document.querySelector('[data-landingsite-mobile-menu]')
14  if (mobileMenu) {
15    mobileMenu.classList.add('hidden')
16  }
17}
18
19function closeModal() {
20  if (!modal) return
21  modal.classList.add('hidden')
22  modal.classList.remove('flex')
23  document.body.style.overflow = ''
24}
25
26function handleKeydown(event) {
27  if (event.key === 'Escape') {
28    closeModal()
29  }
30}
31
32export function init() {
33  modal = document.querySelector('[data-waitlist-modal]')
34  if (!modal) return
35
36  openButtons = Array.from(document.querySelectorAll('[data-waitlist-open]'))
37  closeButtons = Array.from(document.querySelectorAll('[data-waitlist-close]'))
38  backdrops = Array.from(document.querySelectorAll('[data-waitlist-backdrop]'))
39
40  openButtons.forEach((btn) => btn.addEventListener('click', openModal))
41  closeButtons.forEach((btn) => btn.addEventListener('click', closeModal))
42  backdrops.forEach((el) => el.addEventListener('click', closeModal))
43  document.addEventListener('keydown', handleKeydown)
44}
45
46export function teardown() {
47  openButtons.forEach((btn) => btn.removeEventListener('click', openModal))
48  closeButtons.forEach((btn) => btn.removeEventListener('click', closeModal))
49  backdrops.forEach((el) => el.removeEventListener('click', closeModal))
50  document.removeEventListener('keydown', handleKeydown)
51
52  if (modal) {
53    modal.classList.add('hidden')
54    modal.classList.remove('flex')
55  }
56  document.body.style.overflow = ''
57
58  modal = null
59  openButtons = []
60  closeButtons = []
61  backdrops = []
62}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.