mirror of
https://github.com/go-gitea/gitea.git
synced 2026-06-22 21:02:50 +00:00
- Bump `eslint`, `typescript-eslint` and `eslint-plugin-unicorn` (to v68), and configure the rules added in unicorn v66/v67/v68. - Remove `eslint-plugin-github` and its workarounds (rules, type stub, pnpm peer override, in-code `eslint-disable` comments); the rules worth keeping are covered by `unicorn` equivalents. - Apply the resulting fixes and autofixes across the JS codebase. _Prepared with Claude (Opus 4.8)._ --------- Signed-off-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
import {createTippy} from '../modules/tippy.ts';
|
|
import {toggleElem} from '../utils/dom.ts';
|
|
import {registerGlobalEventFunc, registerGlobalInitFunc} from '../modules/observer.ts';
|
|
|
|
export function initRepoEllipsisButton() {
|
|
registerGlobalEventFunc('click', 'onRepoEllipsisButtonClick', async (el: HTMLInputElement, e: Event) => {
|
|
e.preventDefault();
|
|
const expanded = el.getAttribute('aria-expanded') === 'true';
|
|
toggleElem(el.parentElement!.querySelector('.commit-body')!);
|
|
el.setAttribute('aria-expanded', String(!expanded));
|
|
});
|
|
}
|
|
|
|
export function initCommitStatuses() {
|
|
registerGlobalInitFunc('initCommitStatuses', (el: HTMLElement) => {
|
|
const nextEl = el.nextElementSibling!;
|
|
if (!nextEl.matches('.tippy-target')) throw new Error('Expected next element to be a tippy target');
|
|
createTippy(el, {
|
|
content: nextEl,
|
|
placement: 'bottom-start',
|
|
interactive: true,
|
|
role: 'dialog',
|
|
theme: 'box-with-header',
|
|
});
|
|
});
|
|
}
|
|
|
|
export function initAvatarStackPopup() {
|
|
registerGlobalInitFunc('initAvatarStackPopup', (el: HTMLElement) => {
|
|
const nextEl = el.nextElementSibling!;
|
|
if (!nextEl.matches('.tippy-target')) throw new Error('Expected next element to be a tippy target');
|
|
createTippy(el, {
|
|
content: nextEl,
|
|
placement: 'bottom-start',
|
|
interactive: true,
|
|
role: 'dialog',
|
|
theme: 'menu',
|
|
trigger: 'click',
|
|
hideOnClick: true,
|
|
});
|
|
});
|
|
}
|
|
|
|
export function initCommitFileHistoryFollowRename() {
|
|
registerGlobalInitFunc('initCommitHistoryFollowRename', (el: HTMLInputElement) => {
|
|
el.addEventListener('change', () => {
|
|
const url = new URL(window.location.toString());
|
|
url.searchParams.set('follow-rename', String(el.checked));
|
|
window.location.assign(url.href);
|
|
});
|
|
});
|
|
}
|