Load citation JS only when needed (#29855)
Previously, the citation js would load every time when opening a citable repo. Now it only loads when the user clicks the button for it. The loading state is representend with a spinner on the button: <img width="83" alt="Screenshot 2024-03-17 at 00 25 13" src="https://github.com/go-gitea/gitea/assets/115237/29649089-13f3-4974-ab81-e12c0f8e651f"> Diff ist best viewed with whitespace hidden. --------- Co-authored-by: Giteabot <teabot@gitea.io> (cherry picked from commit 4b1c88628a6856e533ff10d346ca5bd73ce952b3)
This commit is contained in:
parent
f4ed953b1b
commit
f2fc2dcfc9
|
@ -13,6 +13,10 @@
|
|||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.button.is-loading > * {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.is-loading::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
|
|
|
@ -40,28 +40,35 @@ export async function initCitationFileCopyContent() {
|
|||
$citationCopyApa.toggleClass('primary', !isBibtex);
|
||||
};
|
||||
|
||||
try {
|
||||
await initInputCitationValue($citationCopyApa, $citationCopyBibtex);
|
||||
} catch (e) {
|
||||
console.error(`initCitationFileCopyContent error: ${e}`, e);
|
||||
return;
|
||||
}
|
||||
updateUi();
|
||||
$('#cite-repo-button').on('click', async (e) => {
|
||||
const dropdownBtn = e.target.closest('.ui.dropdown.button');
|
||||
dropdownBtn.classList.add('is-loading');
|
||||
|
||||
$citationCopyApa.on('click', () => {
|
||||
localStorage.setItem('citation-copy-format', 'apa');
|
||||
updateUi();
|
||||
});
|
||||
$citationCopyBibtex.on('click', () => {
|
||||
localStorage.setItem('citation-copy-format', 'bibtex');
|
||||
updateUi();
|
||||
});
|
||||
try {
|
||||
try {
|
||||
await initInputCitationValue($citationCopyApa, $citationCopyBibtex);
|
||||
} catch (e) {
|
||||
console.error(`initCitationFileCopyContent error: ${e}`, e);
|
||||
return;
|
||||
}
|
||||
updateUi();
|
||||
|
||||
$inputContent.on('click', () => {
|
||||
$inputContent.trigger('select');
|
||||
});
|
||||
$citationCopyApa.on('click', () => {
|
||||
localStorage.setItem('citation-copy-format', 'apa');
|
||||
updateUi();
|
||||
});
|
||||
$citationCopyBibtex.on('click', () => {
|
||||
localStorage.setItem('citation-copy-format', 'bibtex');
|
||||
updateUi();
|
||||
});
|
||||
|
||||
$inputContent.on('click', () => {
|
||||
$inputContent.trigger('select');
|
||||
});
|
||||
} finally {
|
||||
dropdownBtn.classList.remove('is-loading');
|
||||
}
|
||||
|
||||
$('#cite-repo-button').on('click', () => {
|
||||
$('#cite-repo-modal').modal('show');
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue