feat: migrate ESLint to v9 flat config

- Replace .eslintrc.json with eslint.config.mjs
- Simplify configuration using @antfu/eslint-config
- Add necessary ESLint plugin dependencies
- Disable overly strict style rules
- Set package.json type to module for ESM support
- Fix ESLint disable comment format

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
lyzno1
2025-09-10 22:21:17 +08:00
parent 2b1882a5e3
commit 05dcfcf0ca
85 changed files with 464 additions and 502 deletions

View File

@ -14,7 +14,7 @@ import { DEFAULT_VALUE_MAX_LEN } from '@/config'
// regex to match the {{}} and replace it with a span
const regex = /\{\{([^}]+)\}\}/g
export type IWelcomeProps = {
export interface IWelcomeProps {
conversationName: string
hasSetInputs: boolean
isPublicVersion: boolean
@ -42,8 +42,7 @@ const Welcome: FC<IWelcomeProps> = ({
const hasVar = promptConfig.prompt_variables.length > 0
const [isFold, setIsFold] = useState<boolean>(true)
const [inputs, setInputs] = useState<Record<string, any>>((() => {
if (hasSetInputs)
return savedInputs
if (hasSetInputs) { return savedInputs }
const res: Record<string, any> = {}
if (promptConfig) {
@ -69,8 +68,7 @@ const Welcome: FC<IWelcomeProps> = ({
}, [savedInputs])
const highLightPromoptTemplate = (() => {
if (!promptConfig)
return ''
if (!promptConfig) { return '' }
const res = promptConfig.prompt_template.replace(regex, (match, p1) => {
return `<span class='text-gray-800 font-bold'>${inputs?.[p1] ? inputs?.[p1] : match}</span>`
})
@ -189,8 +187,7 @@ const Welcome: FC<IWelcomeProps> = ({
}
const handleChat = () => {
if (!canChat())
return
if (!canChat()) { return }
onStartChat(inputs)
}
@ -251,8 +248,7 @@ const Welcome: FC<IWelcomeProps> = ({
return (
<VarOpBtnGroup
onConfirm={() => {
if (!canChat())
return
if (!canChat()) { return }
onInputsChange(inputs)
setIsFold(true)
@ -309,8 +305,7 @@ const Welcome: FC<IWelcomeProps> = ({
}
const renderHasSetInputsPrivate = () => {
if (!canEditInputs || !hasVar)
return null
if (!canEditInputs || !hasVar) { return null }
return (
<TemplateVarPanel
@ -333,8 +328,7 @@ const Welcome: FC<IWelcomeProps> = ({
}
const renderHasSetInputs = () => {
if ((!isPublicVersion && !canEditInputs) || !hasVar)
return null
if ((!isPublicVersion && !canEditInputs) || !hasVar) { return null }
return (
<div
@ -375,7 +369,8 @@ const Welcome: FC<IWelcomeProps> = ({
<a
className='text-gray-500'
href={siteInfo.privacy_policy}
target='_blank'>{t('app.chat.privacyPolicyMiddle')}</a>
target='_blank'
>{t('app.chat.privacyPolicyMiddle')}</a>
{t('app.chat.privacyPolicyRight')}
</div>
: <div>

View File

@ -37,7 +37,7 @@ export const StarIcon = () => (
</svg>
)
export const ChatBtn: FC<{ onClick: () => void; className?: string }> = ({
export const ChatBtn: FC<{ onClick: () => void, className?: string }> = ({
className,
onClick,
}) => {
@ -46,7 +46,8 @@ export const ChatBtn: FC<{ onClick: () => void; className?: string }> = ({
<Button
type='primary'
className={cn(className, `space-x-2 flex items-center ${s.customBtn}`)}
onClick={onClick}>
onClick={onClick}
>
<svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fillRule="evenodd" clipRule="evenodd" d="M18 10.5C18 14.366 14.418 17.5 10 17.5C8.58005 17.506 7.17955 17.1698 5.917 16.52L2 17.5L3.338 14.377C2.493 13.267 2 11.934 2 10.5C2 6.634 5.582 3.5 10 3.5C14.418 3.5 18 6.634 18 10.5ZM7 9.5H5V11.5H7V9.5ZM15 9.5H13V11.5H15V9.5ZM9 9.5H11V11.5H9V9.5Z" fill="white" />
</svg>
@ -55,7 +56,7 @@ export const ChatBtn: FC<{ onClick: () => void; className?: string }> = ({
)
}
export const EditBtn = ({ className, onClick }: { className?: string; onClick: () => void }) => {
export const EditBtn = ({ className, onClick }: { className?: string, onClick: () => void }) => {
const { t } = useTranslation()
return (