接入 ESLint 并清理未使用代码
- 前后端接入 ESLint 10 扁平配置(typescript-eslint 类型感知检查 + react-hooks/react-refresh),新增 lint / lint:check / lint:fix 脚本并纳入 check 链路 - 清理全部 no-unused-vars 与 no-useless-assignment 警告,修复 floating promises、正则转义等问题 - 删除确认无引用的死代码(markKuaishouCloudBindUrlRefreshFailed、未使用 helper 等)
This commit is contained in:
@@ -63,7 +63,7 @@ export default function WorkerHallPage() {
|
||||
useEffect(() => {
|
||||
if (!autoRefresh) return
|
||||
const timer = window.setInterval(() => {
|
||||
refreshAll()
|
||||
void refreshAll()
|
||||
}, 5000)
|
||||
return () => window.clearInterval(timer)
|
||||
}, [autoRefresh])
|
||||
|
||||
@@ -57,7 +57,7 @@ export default function WorkerLoginPage() {
|
||||
const response = await loginWorker(values)
|
||||
setWorkerSession(response.data.token, response.data.expiresAt, response.data.worker)
|
||||
message.success('登录成功')
|
||||
navigate('/hall', { replace: true })
|
||||
void navigate('/hall', { replace: true })
|
||||
} catch (error) {
|
||||
message.error(error instanceof Error ? error.message : '登录失败')
|
||||
} finally {
|
||||
|
||||
@@ -8,9 +8,7 @@ import {
|
||||
} from '@ant-design/icons'
|
||||
import { useQuery, useQueryClient } from '@tanstack/react-query'
|
||||
import {
|
||||
AutoComplete,
|
||||
App,
|
||||
Alert,
|
||||
Button,
|
||||
Card,
|
||||
Descriptions,
|
||||
@@ -29,7 +27,7 @@ import {
|
||||
Typography,
|
||||
} from 'antd'
|
||||
import type { TableColumnsType } from 'antd'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { useState } from 'react'
|
||||
|
||||
import { DeadlineCountdown } from '@/components/DeadlineCountdown'
|
||||
import ImagePreviewList from '@/components/files/ImagePreviewList'
|
||||
@@ -652,7 +650,7 @@ export default function WorkerOrdersPage() {
|
||||
)
|
||||
const screenshots = getMaterialScreenshots(order)
|
||||
const canCopyInfo = getCopyOrderInfoItems(order).length > 0
|
||||
const submittedAt = getAcceptanceSubmittedAt(order)
|
||||
const _submittedAt = getAcceptanceSubmittedAt(order)
|
||||
const acceptanceFiles = getUniqueAcceptanceFiles(getWorkerAcceptance(order))
|
||||
const hasAcceptance = acceptanceFiles.length > 0
|
||||
const draftFiles = getUniqueAcceptanceFiles(getWorkerDraft(order))
|
||||
@@ -1409,28 +1407,6 @@ function getUniqueAcceptanceFiles(source?: WorkerAcceptance | null): UploadedFil
|
||||
})
|
||||
}
|
||||
|
||||
function getAcceptanceFiles(row: WorkOrder): UploadedFile[] {
|
||||
return getAcceptanceFilesFromSource(getWorkerAcceptance(row))
|
||||
}
|
||||
|
||||
function getAcceptanceImageUrls(row: WorkOrder): string[] {
|
||||
const imageUrls = getWorkerAcceptance(row)?.imageUrls
|
||||
return Array.isArray(imageUrls)
|
||||
? imageUrls.map((item) => String(item || '').trim()).filter(Boolean)
|
||||
: []
|
||||
}
|
||||
|
||||
function getDraftFiles(row: WorkOrder): UploadedFile[] {
|
||||
return getAcceptanceFilesFromSource(getWorkerDraft(row))
|
||||
}
|
||||
|
||||
function getDraftImageUrls(row: WorkOrder): string[] {
|
||||
const imageUrls = getWorkerDraft(row)?.imageUrls
|
||||
return Array.isArray(imageUrls)
|
||||
? imageUrls.map((item) => String(item || '').trim()).filter(Boolean)
|
||||
: []
|
||||
}
|
||||
|
||||
function getAcceptanceSubmittedAt(order: WorkOrder): string | null {
|
||||
if (order.myShare) return order.myShare.submittedAt
|
||||
const acceptanceSubmittedAt =
|
||||
|
||||
@@ -166,7 +166,7 @@ export default function WorkerProfilePage() {
|
||||
} finally {
|
||||
clearWorkerSession()
|
||||
message.success('已退出登录')
|
||||
navigate('/', { replace: true })
|
||||
void navigate('/', { replace: true })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -250,7 +250,7 @@ export default function WorkerProfilePage() {
|
||||
})
|
||||
message.success('密码已修改,请重新登录')
|
||||
clearWorkerSession()
|
||||
navigate('/', { replace: true })
|
||||
void navigate('/', { replace: true })
|
||||
} catch (error) {
|
||||
message.error(error instanceof Error ? error.message : '修改密码失败')
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user