From 6e732209629efa218db0e7c14fcfbee70e6e6fb6 Mon Sep 17 00:00:00 2001 From: tone <3341154833@qq.com> Date: Thu, 19 Jun 2025 22:03:57 +0800 Subject: [PATCH] lint --- .../blog/[id]/components/BlogCommentTool.tsx | 4 +-- .../blog/[id]/components/BlogComments.tsx | 2 +- .../(with-header-footer)/blog/[id]/page.tsx | 32 +++++++++---------- .../list/components/create-user-editor.tsx | 1 - .../user/list/components/user-info-editor.tsx | 30 +++++++++-------- .../console/(with-menu)/user/list/page.tsx | 4 +-- .../web/blog/components/BlogEdit.tsx | 20 ++---------- .../web/blog/components/BlogTable.tsx | 1 - .../app/console/(with-menu)/web/blog/page.tsx | 2 +- .../web/resource/components/AddResource.tsx | 2 +- .../web/resource/components/ResourceEdit.tsx | 2 +- .../console/(with-menu)/web/resource/page.tsx | 2 +- tone-page-web/components/Header.tsx | 2 +- tone-page-web/components/nav-user.tsx | 2 +- .../components/nav-user/SetPassword.tsx | 2 -- .../components/nav-user/UserProfile.tsx | 6 +--- tone-page-web/lib/api/admin/user/update.ts | 4 +-- .../lib/api/admin/web/blog/create.ts | 4 ++- tone-page-web/lib/api/blog/get.ts | 1 - 19 files changed, 52 insertions(+), 71 deletions(-) diff --git a/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogCommentTool.tsx b/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogCommentTool.tsx index d583b9c..9635d06 100644 --- a/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogCommentTool.tsx +++ b/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogCommentTool.tsx @@ -41,8 +41,8 @@ export function BlogCommentTool({ blogId, onInsertComment, replayTarget, handleC onInsertComment(res); handleClearReplayTarget(); } - } catch (error: any) { - if (error.statusCode === 429) { + } catch (error) { + if ((error as { statusCode: number }).statusCode === 429) { return toast.error('操作太频繁了,稍后再试吧') } toast.error('发布失败') diff --git a/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogComments.tsx b/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogComments.tsx index 20f370d..1419374 100644 --- a/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogComments.tsx +++ b/tone-page-web/app/(with-header-footer)/blog/[id]/components/BlogComments.tsx @@ -45,7 +45,7 @@ export function BlogComments({ blogId }: { blogId: string }) {
{ data.filter(d => !d.parentId) - .map((d, dIndex) => ( + .map((d) => (

{d.user ? d.user.nickname : '匿名'}

{d.content}
diff --git a/tone-page-web/app/(with-header-footer)/blog/[id]/page.tsx b/tone-page-web/app/(with-header-footer)/blog/[id]/page.tsx index cada87e..ef6825a 100644 --- a/tone-page-web/app/(with-header-footer)/blog/[id]/page.tsx +++ b/tone-page-web/app/(with-header-footer)/blog/[id]/page.tsx @@ -13,6 +13,7 @@ import 'react-photo-view/dist/react-photo-view.css'; import rehypeRaw from 'rehype-raw' import { Skeleton } from "@/components/ui/skeleton"; import { BlogComments } from "./components/BlogComments"; +import Image from "next/image"; export default function Blog() { const params = useParams(); @@ -50,29 +51,28 @@ export default function Blog() {

, - h2: ({ node, ...props }) =>

, - h3: ({ node, ...props }) =>

, - h4: ({ node, ...props }) =>

, - h5: ({ node, ...props }) =>

, - p: ({ node, ...props }) =>

, - img: ({ node, src, ...props }) => ( + h1: ({ ...props }) =>

, + h2: ({ ...props }) =>

, + h3: ({ ...props }) =>

, + h4: ({ ...props }) =>

, + h5: ({ ...props }) =>

, + p: ({ ...props }) =>

, + img: ({ src }) => ( - + 加载失败 ), - th: ({ node, ...props }) => , - td: ({ node, ...props }) => , - table: ({ node, ...props }) =>

, - pre: ({ node, ...props }) =>
,
-                                blockquote: ({ node, ...props }) => 
, - a: ({ node, ...props }) => , + th: ({ ...props }) =>
, + td: ({ ...props }) => , + table: ({ ...props }) =>
, + pre: ({ ...props }) =>
,
+                                blockquote: ({ ...props }) => 
, + a: ({ ...props }) => , }} - /> + >{data.content} )} diff --git a/tone-page-web/app/console/(with-menu)/user/list/components/create-user-editor.tsx b/tone-page-web/app/console/(with-menu)/user/list/components/create-user-editor.tsx index a09dbe8..07898a0 100644 --- a/tone-page-web/app/console/(with-menu)/user/list/components/create-user-editor.tsx +++ b/tone-page-web/app/console/(with-menu)/user/list/components/create-user-editor.tsx @@ -9,7 +9,6 @@ import { DrawerFooter, DrawerHeader, DrawerTitle, - DrawerTrigger, } from "@/components/ui/drawer" import { useState } from "react"; import { AdminApi } from "@/lib/api"; diff --git a/tone-page-web/app/console/(with-menu)/user/list/components/user-info-editor.tsx b/tone-page-web/app/console/(with-menu)/user/list/components/user-info-editor.tsx index 46494f0..d1a6463 100644 --- a/tone-page-web/app/console/(with-menu)/user/list/components/user-info-editor.tsx +++ b/tone-page-web/app/console/(with-menu)/user/list/components/user-info-editor.tsx @@ -17,7 +17,6 @@ import { Label } from "@/components/ui/label" import { useUser } from "@/hooks/admin/user/use-user"; import { User } from "@/lib/types/user"; import { Skeleton } from "@/components/ui/skeleton"; -import { updateUser } from "@/lib/api/admin/user"; import { AdminApi } from "@/lib/api"; import { toast } from "sonner"; import { @@ -42,10 +41,15 @@ export function UserInfoEditor({ }) { const { user, isLoading, error } = useUser(userId); - const [saveLoading, setSaveLoading] = React.useState(false); - const handleSave = async (user: updateUser) => { + // const [saveLoading, setSaveLoading] = React.useState(false); + const handleSave = async (user: { + username: string; + nickname: string; + email: string | null; + phone: string | null; + }) => { try { - setSaveLoading(true); + // setSaveLoading(true); const res = await AdminApi.user.update(userId, user); if (res) { toast.success("保存成功"); @@ -57,14 +61,14 @@ export function UserInfoEditor({ } catch (error) { toast.error((error as Error).message || "保存失败"); } finally { - setSaveLoading(false); + // setSaveLoading(false); } } - const [removeLoading, setRemoveLoading] = React.useState(false); + // const [removeLoading, setRemoveLoading] = React.useState(false); const handleRemove = async (userId: string) => { try { - setRemoveLoading(true); + // setRemoveLoading(true); await AdminApi.user.remove(userId, true); toast.success("注销成功"); onUserSoftDelete(userId); @@ -72,22 +76,22 @@ export function UserInfoEditor({ } catch (error) { toast.error((error as Error).message || "注销失败"); } finally { - setRemoveLoading(false); + // setRemoveLoading(false); } } const [passwordDialogOpen, setPasswordDialogOpen] = React.useState(false); - const [setPasswordLoading, setSetPasswordLoading] = React.useState(false); + // const [setPasswordLoading, setSetPasswordLoading] = React.useState(false); const handleSetPassword = async (userId: string, password: string) => { try { - setSetPasswordLoading(true); + // setSetPasswordLoading(true); await AdminApi.user.setPassword(userId, password); toast.success("密码修改成功"); setPasswordDialogOpen(false); } catch (error) { toast.error((error as Error).message || "密码修改失败"); } finally { - setSetPasswordLoading(false); + // setSetPasswordLoading(false); } } @@ -109,8 +113,8 @@ export function UserInfoEditor({ e.preventDefault() const formData = new FormData(e.currentTarget); handleSave({ - username: formData.get("username")?.toString()!, - nickname: formData.get("nickname")?.toString()!, + username: formData.get("username")?.toString() as unknown as string, + nickname: formData.get("nickname")?.toString() as unknown as string, email: formData.get("email")?.toString() || null, phone: formData.get("phone")?.toString() || null, }) diff --git a/tone-page-web/app/console/(with-menu)/user/list/page.tsx b/tone-page-web/app/console/(with-menu)/user/list/page.tsx index a369c7a..93b8444 100644 --- a/tone-page-web/app/console/(with-menu)/user/list/page.tsx +++ b/tone-page-web/app/console/(with-menu)/user/list/page.tsx @@ -8,14 +8,14 @@ import { useState } from "react"; import { UserInfoEditor } from "./components/user-info-editor"; import { User } from "@/lib/types/user"; import { CreateUserEditor } from "./components/create-user-editor"; -import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "@/components/ui/alert-dialog"; +import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from "@/components/ui/alert-dialog"; import { AdminApi } from "@/lib/api"; import { toast } from "sonner"; import { ApiError } from "next/dist/server/api-utils"; export default function Page() { - const { users, isLoading, error, total, page, pageSize, mutate, refresh } = useUserList(); + const { users, isLoading, error, mutate, refresh } = useUserList(); const [editorUserId, setEditorUserId] = useState(""); const handleUserUpdateLocal = async (newUser: User) => { diff --git a/tone-page-web/app/console/(with-menu)/web/blog/components/BlogEdit.tsx b/tone-page-web/app/console/(with-menu)/web/blog/components/BlogEdit.tsx index 7c8f922..6f50c14 100644 --- a/tone-page-web/app/console/(with-menu)/web/blog/components/BlogEdit.tsx +++ b/tone-page-web/app/console/(with-menu)/web/blog/components/BlogEdit.tsx @@ -1,6 +1,6 @@ "use client" -import React, { use, useState } from "react" +import React, { useState } from "react" import { Dialog, DialogContent, @@ -13,25 +13,9 @@ import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Button } from "@/components/ui/button" import { toast } from "sonner" -import { Textarea } from "@/components/ui/textarea" -import { Plus } from "lucide-react" -import { Resource } from "@/lib/types/resource" import { AdminApi } from "@/lib/api" import useSWR from "swr" import { ApiError } from "next/dist/server/api-utils" -import { Skeleton } from "@/components/ui/skeleton" -import { - AlertDialog, - AlertDialogAction, - AlertDialogCancel, - AlertDialogContent, - AlertDialogDescription, - AlertDialogFooter, - AlertDialogHeader, - AlertDialogTitle, - AlertDialogTrigger, -} from "@/components/ui/alert-dialog" - interface BlogEditProps { id: string; @@ -41,7 +25,7 @@ interface BlogEditProps { export default function BlogEdit({ id, children, onRefresh }: BlogEditProps) { const [open, setOpen] = useState(false) - const { data: blog, error, isLoading, mutate } = useSWR( + const { data: blog, mutate } = useSWR( open ? `/api/admin/web/blog/${id}` : null, () => AdminApi.web.blog.get(id), { diff --git a/tone-page-web/app/console/(with-menu)/web/blog/components/BlogTable.tsx b/tone-page-web/app/console/(with-menu)/web/blog/components/BlogTable.tsx index 38eac8b..a593a63 100644 --- a/tone-page-web/app/console/(with-menu)/web/blog/components/BlogTable.tsx +++ b/tone-page-web/app/console/(with-menu)/web/blog/components/BlogTable.tsx @@ -3,7 +3,6 @@ import { TableBody, TableCaption, TableCell, - TableFooter, TableHead, TableHeader, TableRow, diff --git a/tone-page-web/app/console/(with-menu)/web/blog/page.tsx b/tone-page-web/app/console/(with-menu)/web/blog/page.tsx index 2fc2258..7f9c0f8 100644 --- a/tone-page-web/app/console/(with-menu)/web/blog/page.tsx +++ b/tone-page-web/app/console/(with-menu)/web/blog/page.tsx @@ -6,7 +6,7 @@ import AddBlog from "./components/AddBlog"; import { Button } from "@/components/ui/button"; export default function Page() { - const { blogs, error, isLoading, refresh } = useBlogList(); + const { blogs, refresh } = useBlogList(); return ( <> diff --git a/tone-page-web/app/console/(with-menu)/web/resource/components/AddResource.tsx b/tone-page-web/app/console/(with-menu)/web/resource/components/AddResource.tsx index 43884b2..381a191 100644 --- a/tone-page-web/app/console/(with-menu)/web/resource/components/AddResource.tsx +++ b/tone-page-web/app/console/(with-menu)/web/resource/components/AddResource.tsx @@ -153,7 +153,7 @@ export default function AddResource({ children, refresh }: AddResourceProps) { - + diff --git a/tone-page-web/app/console/(with-menu)/web/resource/components/ResourceEdit.tsx b/tone-page-web/app/console/(with-menu)/web/resource/components/ResourceEdit.tsx index 6d2ff3c..446199d 100644 --- a/tone-page-web/app/console/(with-menu)/web/resource/components/ResourceEdit.tsx +++ b/tone-page-web/app/console/(with-menu)/web/resource/components/ResourceEdit.tsx @@ -43,7 +43,7 @@ interface ResourceEditProps { export default function ResourceEdit({ children, id, onRefresh }: ResourceEditProps) { const [open, setOpen] = useState(false); - const { data: resource, error, isLoading, mutate } = useSWR( + const { data: resource, isLoading, mutate } = useSWR( open ? [`/api/admin/web/resource/${id}`] : null, () => AdminApi.web.resource.get(id), { diff --git a/tone-page-web/app/console/(with-menu)/web/resource/page.tsx b/tone-page-web/app/console/(with-menu)/web/resource/page.tsx index c1ace65..e224bc5 100644 --- a/tone-page-web/app/console/(with-menu)/web/resource/page.tsx +++ b/tone-page-web/app/console/(with-menu)/web/resource/page.tsx @@ -6,7 +6,7 @@ import { Button } from "@/components/ui/button"; import AddResource from "./components/AddResource"; export default function Page() { - const { resources, error, isLoading, mutate, refresh } = useResourceList(); + const { resources, refresh } = useResourceList(); return ( <> diff --git a/tone-page-web/components/Header.tsx b/tone-page-web/components/Header.tsx index c3a293a..4a2df28 100644 --- a/tone-page-web/components/Header.tsx +++ b/tone-page-web/components/Header.tsx @@ -3,7 +3,7 @@ import { cn } from "@/lib/utils"; import Link from "next/link"; import { usePathname, useRouter } from "next/navigation"; -import { useCallback, useState } from "react"; +import { useState } from "react"; import { Drawer, DrawerContent, diff --git a/tone-page-web/components/nav-user.tsx b/tone-page-web/components/nav-user.tsx index ceab4e7..6299382 100644 --- a/tone-page-web/components/nav-user.tsx +++ b/tone-page-web/components/nav-user.tsx @@ -46,7 +46,7 @@ export function NavUser({ user, isUserLoading }: { user: User | undefined, isUse localStorage.removeItem(UserApi.USER_ME_CACHE_KEY) toast.success('登出成功'); router.replace('/console/login'); - } catch (error) { + } catch { toast.error('登出失败,请稍后再试'); } } diff --git a/tone-page-web/components/nav-user/SetPassword.tsx b/tone-page-web/components/nav-user/SetPassword.tsx index cf0740b..8f3cdb3 100644 --- a/tone-page-web/components/nav-user/SetPassword.tsx +++ b/tone-page-web/components/nav-user/SetPassword.tsx @@ -1,6 +1,5 @@ 'use client'; -import { SeparatorProps } from "@radix-ui/react-separator"; import { Button } from "@/components/ui/button" import { Dialog, @@ -9,7 +8,6 @@ import { DialogFooter, DialogHeader, DialogTitle, - DialogTrigger, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" diff --git a/tone-page-web/components/nav-user/UserProfile.tsx b/tone-page-web/components/nav-user/UserProfile.tsx index 084a9d2..2655fef 100644 --- a/tone-page-web/components/nav-user/UserProfile.tsx +++ b/tone-page-web/components/nav-user/UserProfile.tsx @@ -10,11 +10,7 @@ import { } from "@/components/ui/dialog" import { Button } from "../ui/button"; -interface UserProfileProps { - -} - -export default function ({ onOpenChange, ...props }: UserProfileProps & React.ComponentProps>) { +export default function UserProfile({ onOpenChange, ...props }: React.ComponentProps>) { return ( diff --git a/tone-page-web/lib/api/admin/user/update.ts b/tone-page-web/lib/api/admin/user/update.ts index 51ade8f..b49e311 100644 --- a/tone-page-web/lib/api/admin/user/update.ts +++ b/tone-page-web/lib/api/admin/user/update.ts @@ -2,8 +2,8 @@ import { User } from "@/lib/types/user"; import fetcher from "../../fetcher"; export type updateUser = { - username: string; - nickname: string; + username: string ; + nickname: string ; email: string | null; phone: string | null; } diff --git a/tone-page-web/lib/api/admin/web/blog/create.ts b/tone-page-web/lib/api/admin/web/blog/create.ts index 450cf49..d2bdb1f 100644 --- a/tone-page-web/lib/api/admin/web/blog/create.ts +++ b/tone-page-web/lib/api/admin/web/blog/create.ts @@ -1,7 +1,9 @@ import fetcher from "@/lib/api/fetcher"; type CreateBlogParams = { - + title: string; + description: string; + contentUrl: string; } export async function create(data: CreateBlogParams) { diff --git a/tone-page-web/lib/api/blog/get.ts b/tone-page-web/lib/api/blog/get.ts index 8ba17f2..9cf4d83 100644 --- a/tone-page-web/lib/api/blog/get.ts +++ b/tone-page-web/lib/api/blog/get.ts @@ -1,4 +1,3 @@ -import { Blog } from "@/lib/types/blog"; import fetcher from "../fetcher"; export async function get(id: string) {