mirror of
https://github.com/go-gitea/gitea.git
synced 2026-04-01 08:55:58 +02:00
Replace webpack with Vite 8 as the frontend bundler. Frontend build is around 3-4 times faster than before. Will work on all platforms including riscv64 (via wasm). `iife.js` is a classic render-blocking script in `<head>` (handles web components/early DOM setup). `index.js` is loaded as a `type="module"` script in the footer. All other JS chunks are also module scripts (supported in all browsers since 2018). Entry filenames are content-hashed (e.g. `index.C6Z2MRVQ.js`) and resolved at runtime via the Vite manifest, eliminating the `?v=` cache busting (which was unreliable in some scenarios like vscode dev build). Replaces: https://github.com/go-gitea/gitea/pull/36896 Fixes: https://github.com/go-gitea/gitea/issues/17793 Signed-off-by: silverwind <me@silverwind.io> Signed-off-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Claude (Opus 4.6) <noreply@anthropic.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
35 lines
1.5 KiB
TypeScript
35 lines
1.5 KiB
TypeScript
import {initAriaCheckboxPatch} from './fomantic/checkbox.ts';
|
|
import {initAriaFormFieldPatch} from './fomantic/form.ts';
|
|
import {initAriaDropdownPatch} from './fomantic/dropdown.ts';
|
|
import {initAriaModalPatch} from './fomantic/modal.ts';
|
|
import {initFomanticTransition} from './fomantic/transition.ts';
|
|
import {initFomanticDimmer} from './fomantic/dimmer.ts';
|
|
import {svg} from '../svg.ts';
|
|
import {initFomanticTab} from './fomantic/tab.ts';
|
|
|
|
export const fomanticMobileScreen = window.matchMedia('only screen and (max-width: 767.98px)');
|
|
|
|
export function initGiteaFomantic() {
|
|
// our extensions
|
|
$.fn.fomanticExt = {};
|
|
// By default, use "exact match" for full text search
|
|
$.fn.dropdown.settings.fullTextSearch = 'exact';
|
|
// Do not use "cursor: pointer" for dropdown labels
|
|
$.fn.dropdown.settings.className.label += ' tw-cursor-default';
|
|
// Always use Gitea's SVG icons
|
|
$.fn.dropdown.settings.templates.label = function(_value: any, text: any, preserveHTML: any, className: Record<string, string>) {
|
|
const escape = $.fn.dropdown.settings.templates.escape;
|
|
return escape(text, preserveHTML) + svg('octicon-x', 16, `${className.delete} icon`);
|
|
};
|
|
|
|
initFomanticTransition();
|
|
initFomanticDimmer();
|
|
initFomanticTab();
|
|
|
|
// Use the patches to improve accessibility, these patches are designed to be as independent as possible, make it easy to modify or remove in the future.
|
|
initAriaCheckboxPatch();
|
|
initAriaFormFieldPatch();
|
|
initAriaDropdownPatch();
|
|
initAriaModalPatch();
|
|
}
|