summaryrefslogtreecommitdiffstats
path: root/web_src/js/features
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2024-03-17 11:04:59 +0100
committerGitHub <noreply@github.com>2024-03-17 11:04:59 +0100
commit4b1c88628a6856e533ff10d346ca5bd73ce952b3 (patch)
tree02fb4c5d65ebfe61da18e4a347a1e8f3e77c6b2e /web_src/js/features
parentc20b56815d4f27ffd1b457ec238e494adc5fba81 (diff)
downloadgitea-4b1c88628a6856e533ff10d346ca5bd73ce952b3.tar.gz
gitea-4b1c88628a6856e533ff10d346ca5bd73ce952b3.zip
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>
Diffstat (limited to 'web_src/js/features')
-rw-r--r--web_src/js/features/citation.js45
1 files changed, 26 insertions, 19 deletions
diff --git a/web_src/js/features/citation.js b/web_src/js/features/citation.js
index 61f378f0f2..49992b225f 100644
--- a/web_src/js/features/citation.js
+++ b/web_src/js/features/citation.js
@@ -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');
});
}