mirror of
https://gitcode.com/gitea/gitea.git
synced 2025-05-17 15:20:24 +08:00
Add <overflow-menu>
, rename webcomponents (#29400)
1. Add `<overflow-menu>` web component 2. Rename `<gitea-origin-url>` to `<origin-url>` and make filenames match. <img width="439" alt="image" src="https://github.com/go-gitea/gitea/assets/115237/2fbe4ca4-110b-4ad2-8e17-c1e116ccbd74"> <img width="444" alt="Screenshot 2024-03-02 at 21 36 52" src="https://github.com/go-gitea/gitea/assets/115237/aa8f786e-dc8c-4030-b12d-7cfb74bdfd6e"> <img width="537" alt="Screenshot 2024-03-03 at 03 05 06" src="https://github.com/go-gitea/gitea/assets/115237/fddd50aa-adf1-4b4b-bd7f-caf30c7b2245">   TODO: - [x] Check if removal of `requestAnimationFrame` is possible to avoid flash of content. Likely needs a `MutationObserver`. - [x] Hide tippy when button is removed from DOM. - [x] ~~Implement right-aligned items (https://github.com/go-gitea/gitea/pull/28976)~~. Not going to do it. - [x] Clean up CSS so base element has no background and add background via tailwind instead. - [x] Use it for org and user page. --------- Co-authored-by: Giteabot <teabot@gitea.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
@ -43,6 +43,18 @@ if ('ENABLE_SOURCEMAP' in env) {
|
||||
sourceMaps = isProduction ? 'reduced' : 'true';
|
||||
}
|
||||
|
||||
// define which web components we use for Vue to not interpret them as Vue components
|
||||
const webComponents = new Set([
|
||||
// our own, in web_src/js/webcomponents
|
||||
'overflow-menu',
|
||||
'origin-url',
|
||||
'absolute-date',
|
||||
// from dependencies
|
||||
'markdown-toolbar',
|
||||
'relative-time',
|
||||
'text-expander',
|
||||
]);
|
||||
|
||||
const filterCssImport = (url, ...args) => {
|
||||
const cssFile = args[1] || args[0]; // resourcePath is 2nd argument for url and 3rd for import
|
||||
const importedFile = url.replace(/[?#].+/, '').toLowerCase();
|
||||
@ -72,7 +84,7 @@ export default {
|
||||
fileURLToPath(new URL('web_src/css/index.css', import.meta.url)),
|
||||
],
|
||||
webcomponents: [
|
||||
fileURLToPath(new URL('web_src/js/webcomponents/webcomponents.js', import.meta.url)),
|
||||
fileURLToPath(new URL('web_src/js/webcomponents/index.js', import.meta.url)),
|
||||
],
|
||||
swagger: [
|
||||
fileURLToPath(new URL('web_src/js/standalone/swagger.js', import.meta.url)),
|
||||
@ -121,6 +133,11 @@ export default {
|
||||
test: /\.vue$/i,
|
||||
exclude: /node_modules/,
|
||||
loader: 'vue-loader',
|
||||
options: {
|
||||
compilerOptions: {
|
||||
isCustomElement: (tag) => webComponents.has(tag),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
test: /\.js$/i,
|
||||
|
Reference in New Issue
Block a user