| /*! | |
| * @license | |
| * Copyright 2020 The Go Authors. All rights reserved. | |
| * Use of this source code is governed by a BSD-style | |
| * license that can be found in the LICENSE file. | |
| */ | |
| const fetchButton = document.querySelector('.js-fetchButton'); | |
| if (fetchButton) { | |
| fetchButton.addEventListener('click', e => { | |
| e.preventDefault(); | |
| fetchPath(); | |
| }); | |
| } | |
| async function fetchPath() { | |
| const fetchMessageEl = document.querySelector<HTMLHeadingElement>('.js-fetchMessage'); | |
| const fetchMessageSecondary = document.querySelector<HTMLParagraphElement>( | |
| '.js-fetchMessageSecondary', | |
| ); | |
| const fetchButton = document.querySelector<HTMLButtonElement>('.js-fetchButton'); | |
| const fetchLoading = document.querySelector<HTMLDivElement>('.js-fetchLoading'); | |
| if (!(fetchMessageEl && fetchMessageSecondary && fetchButton && fetchLoading)) { | |
| return; | |
| } | |
| fetchMessageEl.textContent = `Fetching ${fetchMessageEl.dataset.path}`; | |
| fetchMessageSecondary.textContent = | |
| 'Feel free to navigate away and check back later, we’ll keep working on it!'; | |
| fetchButton.style.display = 'none'; | |
| fetchLoading.style.display = 'block'; | |
| const response = await fetch(`/fetch${window.location.pathname}`, { method: 'POST' }); | |
| if (response.ok) { | |
| window.location.reload(); | |
| return; | |
| } | |
| const responseText = await response.text(); | |
| fetchLoading.style.display = 'none'; | |
| fetchMessageSecondary.textContent = ''; | |
| const responseTextParsedDOM = new DOMParser().parseFromString(responseText, 'text/html'); | |
| fetchMessageEl.innerText = responseTextParsedDOM.documentElement.textContent ?? ''; | |
| } | |
| export {}; |