From 6e0a4b058d879b2c65c16ac571afd6bcf7245768 Mon Sep 17 00:00:00 2001 From: Aaron Qian Date: Wed, 4 Jan 2023 19:20:11 -0800 Subject: [PATCH] add null handling and fix merge conflicts --- assets/scripts/pages/search.js | 4 ++-- assets/scripts/pages/single.js | 30 +++++++++++++------------ assets/scripts/sections/navbar.js | 36 +++++++++++++++--------------- layouts/partials/misc/support.html | 1 + 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/assets/scripts/pages/search.js b/assets/scripts/pages/search.js index cdd4b89..c7b7b73 100644 --- a/assets/scripts/pages/search.js +++ b/assets/scripts/pages/search.js @@ -31,7 +31,7 @@ window.addEventListener('DOMContentLoaded', () => { } else { const node = document.createElement('p') node.textContent = 'Please enter a word or phrase above' - window.getElementById('search-results').append(node) + document.getElementById('search-results')?.append(node) } function executeSearch (searchQuery) { @@ -48,7 +48,7 @@ window.addEventListener('DOMContentLoaded', () => { } else { const node = document.createElement('p') node.textContent = 'No matches found' - window.getElementById('search-results').append(node) + document.getElementById('search-results')?.append(node) } }) } diff --git a/assets/scripts/pages/single.js b/assets/scripts/pages/single.js index 4bee855..717ae6d 100644 --- a/assets/scripts/pages/single.js +++ b/assets/scripts/pages/single.js @@ -40,19 +40,21 @@ window.addEventListener('DOMContentLoaded', () => { // add scroll to top button const btn = document.getElementById('scroll-to-top') - window.addEventListener('scroll', function () { - if (window.scrollY > 300) { - btn.classList.add('show') - } else { - btn.classList.remove('show') - } - }) - - btn.addEventListener('click', function (e) { - e.preventDefault() - window.scrollTo({ - top: 0, - behavior: 'smooth' + if(btn) { + window.addEventListener('scroll', function () { + if (window.scrollY > 300) { + btn.classList.add('show') + } else { + btn.classList.remove('show') + } }) - }) + + btn.addEventListener('click', function (e) { + e.preventDefault() + window.scrollTo({ + top: 0, + behavior: 'smooth' + }) + }) + } }) diff --git a/assets/scripts/sections/navbar.js b/assets/scripts/sections/navbar.js index e45135e..0bf75bf 100644 --- a/assets/scripts/sections/navbar.js +++ b/assets/scripts/sections/navbar.js @@ -4,36 +4,36 @@ const updateNavBar = () => { const themeIcon = document.getElementById('navbar-theme-icon-svg') if (window.scrollY > 40) { - topNavbar.classList.remove('initial-navbar') - topNavbar.classList.add('final-navbar', 'shadow') + topNavbar?.classList.remove('initial-navbar') + topNavbar?.classList.add('final-navbar', 'shadow') - navbarToggler.classList.remove('navbar-dark') - navbarToggler.classList.add('navbar-light') + navbarToggler?.classList.remove('navbar-dark') + navbarToggler?.classList.add('navbar-light') // color theme selector a.k.a. dark mode - themeIcon.classList.remove('navbar-icon-svg-dark') + themeIcon?.classList.remove('navbar-icon-svg-dark') // get the main logo from hidden img tag const mainLogo = document.getElementById('main-logo') - if (mainLogo !== null) { + if (mainLogo) { const logoURL = mainLogo.getAttribute('src') - document.getElementById('logo').setAttribute('src', logoURL) + document.getElementById('logo')?.setAttribute('src', logoURL) } } else { - topNavbar.classList.remove('final-navbar', 'shadow') - topNavbar.classList.add('initial-navbar') + topNavbar?.classList.remove('final-navbar', 'shadow') + topNavbar?.classList.add('initial-navbar') - navbarToggler.classList.remove('navbar-light') - navbarToggler.classList.add('navbar-dark') + navbarToggler?.classList.remove('navbar-light') + navbarToggler?.classList.add('navbar-dark') // color theme selector a.k.a. dark mode - themeIcon.classList.add('navbar-icon-svg-dark') + themeIcon?.classList.add('navbar-icon-svg-dark') // get the inverted logo from hidden img tag const invertedLogo = document.getElementById('inverted-logo') - if (invertedLogo !== null) { + if (invertedLogo) { const logoURL = invertedLogo.getAttribute('src') - document.getElementById('logo').setAttribute('src', logoURL) + document.getElementById('logo')?.setAttribute('src', logoURL) } } } @@ -47,14 +47,14 @@ document.addEventListener('DOMContentLoaded', function () { // Creates a click handler to collapse the navigation when // anchors in the mobile nav pop up are clicked - const navMain = document.getElementsByClassName('navbar-collapse') - for (const el of navMain) { + const navMain =document.getElementsByClassName('navbar-collapse') + Array.from(navMain).forEach(function(el) { el.addEventListener('click', function (e) { if (e.target.tagName === 'A') { - navMain.collapse('hide') + el.classList.add('collapse') } }) - } + }) updateNavBar() }) diff --git a/layouts/partials/misc/support.html b/layouts/partials/misc/support.html index 53a3094..50fa843 100644 --- a/layouts/partials/misc/support.html +++ b/layouts/partials/misc/support.html @@ -17,5 +17,6 @@ {{ with .buymeacoffee }} {{ end }} + {{ end }} {{ end }} {{ end }}