diff --git a/package.json b/package.json index 4cf0239b..04172a7d 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "dev": "webpack-dev-server", "build": "webpack --mode=production -p --progress", "lint": "eslint --ext=ts -f=beauty .", + "fmt": "prettier --write 'resources/assets/**/*.{ts,tsx}'", "test": "jest" }, "dependencies": { @@ -201,6 +202,7 @@ ], "coveragePathIgnorePatterns": [ "/node_modules/", + "/resources/assets/styles", "/resources/assets/tests/setup", "/resources/assets/tests/utils", "/resources/assets/tests/scripts/cli/stdio" diff --git a/resources/assets/src/components/ButtonEdit.tsx b/resources/assets/src/components/ButtonEdit.tsx index 5c470f94..83c055aa 100644 --- a/resources/assets/src/components/ButtonEdit.tsx +++ b/resources/assets/src/components/ButtonEdit.tsx @@ -5,7 +5,7 @@ interface Props { onClick: React.MouseEventHandler } -const ButtonEdit: React.FC = props => ( +const ButtonEdit: React.FC = (props) => ( diff --git a/resources/assets/src/scripts/event.ts b/resources/assets/src/scripts/event.ts index 5a724977..afc5b20c 100644 --- a/resources/assets/src/scripts/event.ts +++ b/resources/assets/src/scripts/event.ts @@ -14,7 +14,7 @@ export function on(event: string | symbol, listener: CallableFunction) { } export function emit(event: string | symbol, payload?: unknown) { - bus.get(event)?.forEach(listener => listener(payload)) + bus.get(event)?.forEach((listener) => listener(payload)) } blessing.event = { on, emit } diff --git a/resources/assets/src/scripts/home-page.ts b/resources/assets/src/scripts/home-page.ts index 18a15c1c..0e4d1dea 100644 --- a/resources/assets/src/scripts/home-page.ts +++ b/resources/assets/src/scripts/home-page.ts @@ -3,7 +3,7 @@ function handler() { /* istanbul ignore else */ if (header) { window.addEventListener('scroll', () => { - if (window.scrollY >= window.innerHeight * 2 / 3) { + if (window.scrollY >= (window.innerHeight * 2) / 3) { header.classList.remove('transparent') } else { header.classList.add('transparent') diff --git a/resources/assets/src/scripts/i18n.ts b/resources/assets/src/scripts/i18n.ts index d361cd31..42e4b689 100644 --- a/resources/assets/src/scripts/i18n.ts +++ b/resources/assets/src/scripts/i18n.ts @@ -1,6 +1,6 @@ export function t(key: string, parameters = Object.create(null)): string { const segments = key.split('.') - let temp = (blessing.i18n) as { + let temp = blessing.i18n as { [k: string]: string | { [k: string]: string } } let result = '' @@ -17,8 +17,9 @@ export function t(key: string, parameters = Object.create(null)): string { } } - Object.keys(parameters) - .forEach(slot => (result = result.replace(`:${slot}`, parameters[slot]))) + Object.keys(parameters).forEach( + (slot) => (result = result.replace(`:${slot}`, parameters[slot])), + ) return result } diff --git a/resources/assets/src/scripts/init.ts b/resources/assets/src/scripts/init.ts index 0e55e4b3..ee6883ed 100644 --- a/resources/assets/src/scripts/init.ts +++ b/resources/assets/src/scripts/init.ts @@ -9,9 +9,10 @@ declare let __webpack_public_path__: string const url = new URL(blessing.base_url) url.port = '8080' -__webpack_public_path__ = process.env.NODE_ENV === 'development' - ? url.toString() - : `${blessing.base_url}/app/` +__webpack_public_path__ = + process.env.NODE_ENV === 'development' + ? url.toString() + : `${blessing.base_url}/app/` // @ts-ignore window.$ = window.jQuery = $ // eslint-disable-line diff --git a/resources/assets/src/scripts/net.ts b/resources/assets/src/scripts/net.ts index 125306a8..8c1ee3cc 100644 --- a/resources/assets/src/scripts/net.ts +++ b/resources/assets/src/scripts/net.ts @@ -58,7 +58,7 @@ export async function walkFetch(request: Request): Promise { } = body return { code: 1, - message: Object.keys(errors).map(field => errors[field][0])[0], + message: Object.keys(errors).map((field) => errors[field][0])[0], } } else if (response.status === 419) { showModal({ @@ -106,9 +106,7 @@ export function get(url: string, params = empty): Promise { const qs = new URLSearchParams(params) - return walkFetch( - new Request(`${blessing.base_url}${url}?${qs}`, init), - ) + return walkFetch(new Request(`${blessing.base_url}${url}?${qs}`, init)) } function nonGet(method: string, url: string, data: any): Promise { diff --git a/resources/assets/src/scripts/textureUtils.ts b/resources/assets/src/scripts/textureUtils.ts index a34f46c1..baaf3ea6 100644 --- a/resources/assets/src/scripts/textureUtils.ts +++ b/resources/assets/src/scripts/textureUtils.ts @@ -17,7 +17,7 @@ function checkPixel( /* istanbul ignore next */ export function isAlex(texture: string): Promise { - return new Promise(resolve => { + return new Promise((resolve) => { const image = new Image() image.src = texture image.onload = () => { diff --git a/resources/assets/src/scripts/toast.tsx b/resources/assets/src/scripts/toast.tsx index 6e99084d..b8e36bb2 100644 --- a/resources/assets/src/scripts/toast.tsx +++ b/resources/assets/src/scripts/toast.tsx @@ -15,7 +15,7 @@ export const ToastContainer: React.FC = () => { useEffect(() => { const off1 = emitter.on(TOAST_EVENT, (toast: QueueElement) => { - setQueue(queue => { + setQueue((queue) => { queue.push(toast) return queue.slice() }) @@ -29,7 +29,7 @@ export const ToastContainer: React.FC = () => { }, []) const handleClose = (id: string) => { - setQueue(queue => queue.filter(el => el.id !== id)) + setQueue((queue) => queue.filter((el) => el.id !== id)) } return ( diff --git a/resources/assets/src/views/admin/Customization.ts b/resources/assets/src/views/admin/Customization.ts index 10ad81ec..cf39329e 100644 --- a/resources/assets/src/views/admin/Customization.ts +++ b/resources/assets/src/views/admin/Customization.ts @@ -7,14 +7,13 @@ export function registerNavbarPicker( picker: HTMLDivElement, init: string, ): void { - const color$ = fromEvent(picker, 'click') - .pipe( - map(event => (event.target as HTMLElement)), - filter( - (element): element is HTMLInputElement => element.tagName === 'INPUT', - ), - map(element => element.value), - ) + const color$ = fromEvent(picker, 'click').pipe( + map((event) => event.target as HTMLElement), + filter( + (element): element is HTMLInputElement => element.tagName === 'INPUT', + ), + map((element) => element.value), + ) merge(of(init), color$) .pipe(pairwise()) @@ -22,9 +21,8 @@ export function registerNavbarPicker( navbar.classList.replace(`navbar-${previous}`, `navbar-${current}`) }) - const [light$, dark$] = partition( - color$, - color => ['light', 'warning', 'white', 'orange', 'lime'].includes(color), + const [light$, dark$] = partition(color$, (color) => + ['light', 'warning', 'white', 'orange', 'lime'].includes(color), ) light$.subscribe(() => { // DO NOT use `classList.replace`. @@ -47,18 +45,18 @@ if (navbar && picker) { export function registerSidebarPicker( sidebar: HTMLElement, - { dark, light }: { dark: HTMLDivElement, light: HTMLDivElement }, + { dark, light }: { dark: HTMLDivElement; light: HTMLDivElement }, init: string, ): void { const color$ = merge( fromEvent(dark, 'click'), fromEvent(light, 'click'), ).pipe( - map(event => (event.target as HTMLElement)), + map((event) => event.target as HTMLElement), filter( (element): element is HTMLInputElement => element.tagName === 'INPUT', ), - map(element => element.value), + map((element) => element.value), ) merge(of(init), color$) @@ -69,10 +67,12 @@ export function registerSidebarPicker( } const sidebar = document.querySelector('.main-sidebar') -const darkPicker = document - .querySelector('#sidebar-dark-picker') -const lightPicker = document - .querySelector('#sidebar-light-picker') +const darkPicker = document.querySelector( + '#sidebar-dark-picker', +) +const lightPicker = document.querySelector( + '#sidebar-light-picker', +) /* istanbul ignore next */ if (sidebar && darkPicker && lightPicker) { registerSidebarPicker( diff --git a/resources/assets/src/views/admin/Update.ts b/resources/assets/src/views/admin/Update.ts index 222661ae..f081e736 100644 --- a/resources/assets/src/views/admin/Update.ts +++ b/resources/assets/src/views/admin/Update.ts @@ -7,7 +7,9 @@ export default async function handler(event: MouseEvent) { button.disabled = true const text = button.textContent - button.innerHTML = ` ${t('admin.downloading')}` + button.innerHTML = ` ${t( + 'admin.downloading', + )}` const { code, message }: ResponseBody = await post('/admin/update/download') button.textContent = text diff --git a/resources/assets/src/views/user/BindPlayers.tsx b/resources/assets/src/views/user/BindPlayers.tsx index 111427a7..e73d46aa 100644 --- a/resources/assets/src/views/user/BindPlayers.tsx +++ b/resources/assets/src/views/user/BindPlayers.tsx @@ -18,7 +18,7 @@ const BindPlayers: React.FC = () => { const response = await fetch.get>( '/user/player/list', ) - const players = response.data.map(player => player.name) + const players = response.data.map((player) => player.name) setPlayers(players) setSelected(players[0]) setIsLoading(false) @@ -52,7 +52,7 @@ const BindPlayers: React.FC = () => { <>

{t('user.bindExistedPlayer')}

- {players.map(player => ( + {players.map((player) => (