aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/js/components/VueComponentLoader.js
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-03-14 12:09:06 +0800
committerGitHub <noreply@github.com>2023-03-14 12:09:06 +0800
commite82f1b15c7120ad13fd3b67cf7e2c6cb9915c22d (patch)
tree1da00ac20e4f62bf55bbf68e914d27cd1920a5d6 /web_src/js/components/VueComponentLoader.js
parentb942838bd486f5d3919a14a128efe22fc55c6112 (diff)
downloadgitea-e82f1b15c7120ad13fd3b67cf7e2c6cb9915c22d.tar.gz
gitea-e82f1b15c7120ad13fd3b67cf7e2c6cb9915c22d.zip
Refactor dashboard repo list to Vue SFC (#23405)
Similar to #23394 The dashboard repo list mixes jQuery/Fomantic UI/Vue together, it's very diffcult to maintain and causes unfixable a11y problems. This PR uses two steps to refactor the repo list: 1. move `data-` attributes to JS object and use Vue data as much as possible https://github.com/go-gitea/gitea/pull/23405/commits/d3adc0dcacf7de87b9819277e6598ac3993bbfa3 2. move the code into a Vue SFC https://github.com/go-gitea/gitea/pull/23405/commits/7ebe55df6e67adfd272a4bf0a96ad6688edf661f Total: +516 −585 Screenshots: <details> ![image](https://user-images.githubusercontent.com/2114189/224271457-a23e05be-d7d3-4247-a803-f0ee30c36f44.png) ![image](https://user-images.githubusercontent.com/2114189/224271504-76fbd3da-4d7a-4725-b0d1-fbff83caac63.png) ![image](https://user-images.githubusercontent.com/2114189/224271845-f007cadf-6c49-46bd-a65c-a3fc75bdba3b.png) </details> --------- Co-authored-by: John Olheiser <john.olheiser@gmail.com>
Diffstat (limited to 'web_src/js/components/VueComponentLoader.js')
-rw-r--r--web_src/js/components/VueComponentLoader.js49
1 files changed, 0 insertions, 49 deletions
diff --git a/web_src/js/components/VueComponentLoader.js b/web_src/js/components/VueComponentLoader.js
deleted file mode 100644
index 33ebf95eff..0000000000
--- a/web_src/js/components/VueComponentLoader.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import {createApp} from 'vue';
-import {svgs} from '../svg.js';
-
-export const vueDelimiters = ['${', '}'];
-
-let vueEnvInited = false;
-export function initVueEnv() {
- if (vueEnvInited) return;
- vueEnvInited = true;
-
- // As far as I could tell, this is no longer possible.
- // But there seem not to be a guide what to do instead.
- // const isProd = window.config.runModeIsProd;
- // Vue.config.devtools = !isProd;
-}
-
-let vueSvgInited = false;
-export function initVueSvg(app) {
- if (vueSvgInited) return;
- vueSvgInited = true;
-
- // register svg icon vue components, e.g. <octicon-repo size="16"/>
- for (const [name, htmlString] of Object.entries(svgs)) {
- const template = htmlString
- .replace(/height="[0-9]+"/, 'v-bind:height="size"')
- .replace(/width="[0-9]+"/, 'v-bind:width="size"');
-
- app.component(name, {
- props: {
- size: {
- type: String,
- default: '16',
- },
- },
- template,
- });
- }
-}
-
-export function initVueApp(el, opts = {}) {
- if (typeof el === 'string') {
- el = document.querySelector(el);
- }
- if (!el) return null;
-
- return createApp(
- {delimiters: vueDelimiters, ...opts}
- ).mount(el);
-}