build: update all deps and migrate to biome

This commit is contained in:
Haoyu Xu
2025-10-04 02:11:24 +08:00
parent 43850d47ea
commit 5c9e9eba84
133 changed files with 834 additions and 1962 deletions

View File

@@ -1,9 +1,9 @@
import React from 'react'
import ReactDOM from 'react-dom/client'
import { createBrowserRouter, RouterProvider } from 'react-router-dom'
import Root from '@/routes/Root'
import Error from '@/routes/Error'
import routes from '@/routes'
import ErrorPage from '@/routes/Error'
import Root from '@/routes/Root'
import '@/App.scss'
import 'reset-css'
@@ -11,7 +11,7 @@ const router = createBrowserRouter([
{
path: '/',
element: <Root />,
errorElement: <Error />,
errorElement: <ErrorPage />,
children: routes.filter((item) => item.routeable),
},
])

View File

@@ -1,5 +1,5 @@
import { useState } from 'react'
import PropTypes from 'prop-types'
import { useState } from 'react'
import classes from './scss/dropdown.module.scss'
export default function Dropdown(props) {

View File

@@ -1,8 +1,8 @@
import { useState } from 'react'
import classes from './scss/popup.module.scss'
import ReturnButton from '@/component/return_button'
import Border from '@/component/border'
import PropTypes from 'prop-types'
import { useState } from 'react'
import Border from '@/component/border'
import ReturnButton from '@/component/return_button'
import classes from './scss/popup.module.scss'
export default function Popup(props) {
const [hidden, setHidden] = useState(true)

View File

@@ -1,7 +1,7 @@
import { useState } from 'react'
import PropTypes from 'prop-types'
import classes from './scss/search_box.module.scss'
import { useState } from 'react'
import { useI18n } from '@/state/language'
import classes from './scss/search_box.module.scss'
export default function SearchBox(props) {
const { i18n } = useI18n()

View File

@@ -1,7 +1,7 @@
import { useState, useEffect } from 'react'
import PropTypes from 'prop-types'
import classes from './scss/switch.module.scss'
import { useEffect, useState } from 'react'
import { useI18n } from '@/state/language'
import classes from './scss/switch.module.scss'
export default function Switch(props) {
const [on, setOn] = useState(props.on)

View File

@@ -1,5 +1,5 @@
import { useEffect, useState, useCallback } from 'react'
import PropTypes from 'prop-types'
import { useCallback, useEffect, useState } from 'react'
import classes from './scss/totop_button.module.scss'
export default function ToTopButton(props) {

View File

@@ -1,5 +1,5 @@
import { useEffect, useRef } from 'react'
import PropTypes from 'prop-types'
import { useEffect, useRef } from 'react'
export default function VoiceElement({ src, replay, handleAduioStateChange }) {
const audioRef = useRef(null)

View File

@@ -1,17 +1,17 @@
import { useState, useEffect, useMemo, useRef, useCallback } from 'react'
import { useNavigate, useRouteError } from 'react-router-dom'
import header from '@/scss/root/header.module.scss'
import classes from '@/scss/error/Error.module.scss'
import buildConfig from '!/config.json'
import { Player as SpinePlayer } from '@aklive2d/module'
import { useAtom } from 'jotai'
import { atomWithStorage } from 'jotai/utils'
import Switch from '@/component/switch'
import ReturnButton from '@/component/return_button'
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { useNavigate, useRouteError } from 'react-router-dom'
import { Typewriter } from 'react-simple-typewriter'
import { useHeader } from '@/state/header'
import ReturnButton from '@/component/return_button'
import Switch from '@/component/switch'
import VoiceElement from '@/component/voice'
import { Player as SpinePlayer } from '@aklive2d/module'
import classes from '@/scss/error/Error.module.scss'
import header from '@/scss/root/header.module.scss'
import { useHeader } from '@/state/header'
import useInsight from '@/state/insight'
import buildConfig from '!/config.json'
const voiceOnAtom = atomWithStorage('voiceOn', false)
const config = buildConfig.error_files
@@ -20,8 +20,7 @@ const filename = obj.key.replace(/#/g, '%23')
const padding = obj.paddings
let lastVoiceState = 'ended'
export default function Error() {
// eslint-disable-next-line no-unused-vars
export default function ErrorPage() {
const _trackEvt = useInsight()
const error = useRouteError()
const navigate = useNavigate()

View File

@@ -1,26 +1,26 @@
import { useState, useEffect, useMemo, useCallback } from 'react'
import PropTypes from 'prop-types'
import { useCallback, useEffect, useMemo, useState } from 'react'
import {
Outlet,
Link,
NavLink,
useNavigate,
Outlet,
ScrollRestoration,
useNavigate,
} from 'react-router-dom'
import classes from '@/scss/root/Root.module.scss'
import header from '@/scss/root/header.module.scss'
import footer from '@/scss/root/footer.module.scss'
import drawer from '@/scss/root/drawer.module.scss'
import routes from '@/routes'
import { useConfig } from '@/state/config'
import { useHeader } from '@/state/header'
import { useAppbar } from '@/state/appbar'
import { useI18n, useLanguage } from '@/state/language'
import Dropdown from '@/component/dropdown'
import Popup from '@/component/popup'
import Border from '@/component/border'
import CharIcon from '@/component/char_icon'
import Dropdown from '@/component/dropdown'
import Popup from '@/component/popup'
import ToTopButton from '@/component/totop_button'
import routes from '@/routes'
import drawer from '@/scss/root/drawer.module.scss'
import footer from '@/scss/root/footer.module.scss'
import header from '@/scss/root/header.module.scss'
import classes from '@/scss/root/Root.module.scss'
import { useAppbar } from '@/state/appbar'
import { useConfig } from '@/state/config'
import { useHeader } from '@/state/header'
import { useI18n, useLanguage } from '@/state/language'
const currentYear = new Date().getFullYear()

View File

@@ -1,27 +1,25 @@
import { useState, useEffect, useCallback, useMemo } from 'react'
import PropTypes from 'prop-types'
import { NavLink, Link } from 'react-router-dom'
import classes from '@/scss/home/Home.module.scss'
import { useConfig } from '@/state/config'
import { useI18n } from '@/state/language'
import { useLanguage } from '@/state/language'
import { useHeader } from '@/state/header'
import { useAppbar } from '@/state/appbar'
import VoiceElement from '@/component/voice'
import buildConfig from '!/config.json'
import { useAtom } from 'jotai'
import { atomWithStorage } from 'jotai/utils'
import CharIcon from '@/component/char_icon'
import PropTypes from 'prop-types'
import { useCallback, useEffect, useMemo, useState } from 'react'
import { Link, NavLink } from 'react-router-dom'
import Border from '@/component/border'
import useInsight from '@/state/insight'
import Switch from '@/component/switch'
import CharIcon from '@/component/char_icon'
import SearchBox from '@/component/search_box'
import buildConfig from '!/config.json'
import Switch from '@/component/switch'
import VoiceElement from '@/component/voice'
import classes from '@/scss/home/Home.module.scss'
import { useAppbar } from '@/state/appbar'
import { useConfig } from '@/state/config'
import { useHeader } from '@/state/header'
import useInsight from '@/state/insight'
import { useI18n, useLanguage } from '@/state/language'
const voiceOnAtom = atomWithStorage('voiceOn', false)
let lastVoiceState = 'ended'
export default function Home() {
// eslint-disable-next-line
const _trackEvt = useInsight()
const { setTitle, setTabs, currentTab, setHeaderIcon, setFastNavigation } =
useHeader()
@@ -122,7 +120,7 @@ export default function Home() {
const list = navigationList.filter((item) => {
return (
item.name.toLowerCase().indexOf(searchField.toLowerCase()) !==
-1 || item.type === 'date'
-1 || item.type === 'date'
)
})
const newList = []
@@ -239,7 +237,7 @@ export default function Home() {
}
viewBox={
entry.type ===
'operator'
'operator'
? '0 0 88.969 71.469'
: '0 0 94.563 67.437'
}
@@ -251,25 +249,24 @@ export default function Home() {
}
>
{language ===
'zh-CN'
'zh-CN'
? entry.type ===
'skin'
? `${
entry
.skinName[
'zh-CN'
]
} · ${entry.operatorName}`
'skin'
? `${entry
.skinName[
'zh-CN'
]
} · ${entry.operatorName}`
: entry.operatorName
: entry
.skinName[
'en-US'
]}
.skinName[
'en-US'
]}
</section>
<section
className={
classes[
'arrow-icon'
'arrow-icon'
]
}
>
@@ -386,9 +383,9 @@ function OperatorElement({ item, hidden, handleVoicePlay }) {
<span className={classes.text}>
{
item.codename[
language.startsWith('en')
? alternateLang
: textDefaultLang
language.startsWith('en')
? alternateLang
: textDefaultLang
]
}
</span>

View File

@@ -1,18 +1,17 @@
import { useState, useEffect, useRef, useCallback, useMemo } from 'react'
import { useParams, useNavigate, Link } from 'react-router-dom'
import classes from '@/scss/operator/Operator.module.scss'
import { useConfig } from '@/state/config'
import { useLanguage } from '@/state/language'
import { useHeader } from '@/state/header'
import { useAppbar } from '@/state/appbar'
import VoiceElement from '@/component/voice'
import useInsight from '@/state/insight'
import { Player as SpinePlayer } from '@aklive2d/module'
import Border from '@/component/border'
import { useI18n } from '@/state/language'
import Switch from '@/component/switch'
import { atom, useAtom } from 'jotai'
import buildConfig from '!/config.json'
import { Player as SpinePlayer } from '@aklive2d/module'
import { atom, useAtom } from 'jotai'
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { Link, useNavigate, useParams } from 'react-router-dom'
import Border from '@/component/border'
import Switch from '@/component/switch'
import VoiceElement from '@/component/voice'
import classes from '@/scss/operator/Operator.module.scss'
import { useAppbar } from '@/state/appbar'
import { useConfig } from '@/state/config'
import { useHeader } from '@/state/header'
import useInsight from '@/state/insight'
import { useI18n, useLanguage } from '@/state/language'
const musicMapping = buildConfig.music_mapping
const getVoiceFoler = (lang) => {
@@ -56,7 +55,6 @@ export default function Operator() {
const { setTitle, setTabs, setHeaderIcon, setFastNavigation } = useHeader()
const { setExtraArea } = useAppbar()
const [config, setConfig] = useState(null)
// eslint-disable-next-line no-unused-vars
const _trackEvt = useInsight(`/${key}`)
const spineRef = useRef(null)
const [spineAnimationName, setSpineAnimationName] = useState(
@@ -567,8 +565,8 @@ export default function Operator() {
style={
config.invert_filter
? {
filter: 'invert(1)',
}
filter: 'invert(1)',
}
: {}
}
/>

View File

@@ -1,6 +1,6 @@
import CONFIG from '!/config.json'
import { useCallback } from 'react'
import { atom, useAtom } from 'jotai'
import { useCallback } from 'react'
const officialUpdateAtom = atom({})
let operators = []

View File

@@ -1,5 +1,5 @@
import { useEffect } from 'react'
import { atom, useAtom } from 'jotai'
import { useEffect } from 'react'
import { useI18n } from '@/state/language'
const keyAtom = atom('')

View File

@@ -1,5 +1,5 @@
import React from 'react'
import buildConfig from '!/config.json'
import React from 'react'
export default (path = null, skipPageView = false) => {
React.useEffect(() => {