mirror of
https://github.com/go-gitea/gitea.git
synced 2026-08-07 10:52:17 +00:00
c6836d0abb
Migrates the last four Options API components, so all 20 `.vue` files
now use `<script setup>`, and disables the Vue Options API runtime. This
will enable optimizations like Vue Vapor mode in the future.
Bug fixes done while migrating and testing:
- Branch selector: arrowing onto "Create branch …" threw a `TypeError`,
and Enter on it did nothing
- Dashboard: the search term was not escaped, so `&` injected query
parameters and `#` truncated the request
- Dashboard: an unknown `repo-search-filter` threw, and names like
`constructor` leaked `Object.prototype` members into the request
- Dashboard: an unknown archived/private filter rendered `function
Object() { [native code] }` as a checkbox tooltip
- Dashboard: removed a dropdown init that always ran against a
not-yet-rendered element
- Branch selector: the `document.body` click listener was never removed
on unmount
- Contributors: the chart plugin relied on an undeclared chart.js field
- Contributors: `contributorsStats` was mutated behind a `shallowRef`,
so future readers would not update
- Removed template attributes and pageData keys that no component had
read for years
---------
Signed-off-by: silverwind <me@silverwind.io>
33 lines
772 B
TypeScript
33 lines
772 B
TypeScript
import vuePlugin from '@vitejs/plugin-vue';
|
|
import {stringPlugin} from 'vite-string-plugin';
|
|
import type {Plugin} from 'vite';
|
|
|
|
// custom elements, vue must render these as-is instead of resolving them as components
|
|
const webComponents = new Set([
|
|
// our own, in web_src/js/webcomponents
|
|
'overflow-menu',
|
|
'relative-time',
|
|
// from dependencies
|
|
'markdown-toolbar',
|
|
'text-expander',
|
|
]);
|
|
|
|
export const vueDefines = {
|
|
__VUE_OPTIONS_API__: false,
|
|
__VUE_PROD_DEVTOOLS__: false,
|
|
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false,
|
|
};
|
|
|
|
export function sharedPlugins(): Plugin[] {
|
|
return [
|
|
stringPlugin(),
|
|
vuePlugin({
|
|
template: {
|
|
compilerOptions: {
|
|
isCustomElement: (tag) => webComponents.has(tag),
|
|
},
|
|
},
|
|
}),
|
|
];
|
|
}
|