mirror of https://github.com/go-gitea/gitea.git
58 lines
2.1 KiB
TypeScript
58 lines
2.1 KiB
TypeScript
import {showInfoToast, showWarningToast, showErrorToast} from './toast.ts';
|
|
import type {Toast} from './toast.ts';
|
|
import {registerGlobalInitFunc} from './observer.ts';
|
|
import {fomanticQuery} from './fomantic/base.ts';
|
|
import {createElementFromHTML} from '../utils/dom.ts';
|
|
import {html} from '../utils/html.ts';
|
|
|
|
type LevelMap = Record<string, (message: string) => Toast | null>;
|
|
|
|
function initDevtestPage() {
|
|
const toastButtons = document.querySelectorAll('.toast-test-button');
|
|
if (toastButtons.length) {
|
|
const levelMap: LevelMap = {info: showInfoToast, warning: showWarningToast, error: showErrorToast};
|
|
for (const el of toastButtons) {
|
|
el.addEventListener('click', () => {
|
|
const level = el.getAttribute('data-toast-level')!;
|
|
const message = el.getAttribute('data-toast-message')!;
|
|
levelMap[level](message);
|
|
});
|
|
}
|
|
}
|
|
|
|
const modalButtons = document.querySelector('.modal-buttons');
|
|
if (modalButtons) {
|
|
for (const el of document.querySelectorAll('.ui.modal:not([data-skip-button])')) {
|
|
const btn = createElementFromHTML(html`<button class="ui button">${el.id}</button`);
|
|
btn.addEventListener('click', () => fomanticQuery(el).modal('show'));
|
|
modalButtons.append(btn);
|
|
}
|
|
}
|
|
|
|
const sampleButtons = document.querySelectorAll('#devtest-button-samples button.ui.button');
|
|
if (sampleButtons.length) {
|
|
const buttonStyles = document.querySelectorAll<HTMLInputElement>('input[name*="button-style"]');
|
|
for (const elStyle of buttonStyles) {
|
|
elStyle.addEventListener('click', () => {
|
|
for (const btn of sampleButtons) {
|
|
for (const el of buttonStyles) {
|
|
if (el.value) btn.classList.toggle(el.value, el.checked);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
const buttonStates = document.querySelectorAll<HTMLInputElement>('input[name*="button-state"]');
|
|
for (const elState of buttonStates) {
|
|
elState.addEventListener('click', () => {
|
|
for (const btn of sampleButtons) {
|
|
(btn as any)[elState.value] = elState.checked;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
export function initDevtest() {
|
|
registerGlobalInitFunc('initDevtestPage', initDevtestPage);
|
|
}
|