Browse Source

♻️ refactor(admin): update react-query useMutation syntax to object format

- refactor Contacts page: convert updateContact mutation to object syntax
- refactor Expenses page: convert createExpense, updateExpense and deleteExpense mutations to object syntax
- refactor Files page: convert createFile and updateFile mutations to object syntax
- add explicit mutationFn property for better code clarity and maintainability
yourname 8 months ago
parent
commit
4db0cd7306

+ 10 - 12
src/client/admin/pages/Contacts.tsx

@@ -128,23 +128,21 @@ const Contacts: React.FC = () => {
   );
   
   // 更新联系人记录
-  const updateContact = useMutation(
-    async ({ id, data }: { id: string; data: any }) => {
+  const updateContact = useMutation({
+    mutationFn: async ({ id, data }: { id: string; data: any }) => {
       const response = await linkmanClient[':id'].$put({ param: { id }, json: data });
       if (!response.ok) throw new Error('Failed to update contact');
       return response.json();
     },
-    {
-      onSuccess: () => {
-        message.success('联系人记录更新成功');
-        queryClient.invalidateQueries({ queryKey: ['contacts'] });
-        setModalVisible(false);
-      },
-      onError: () => {
-        message.error('操作失败,请重试');
-      }
+    onSuccess: () => {
+      message.success('联系人记录更新成功');
+      queryClient.invalidateQueries({ queryKey: ['contacts'] });
+      setModalVisible(false);
+    },
+    onError: () => {
+      message.error('操作失败,请重试');
     }
-  );
+  });
   
   // 删除联系人记录
   const deleteContact = useMutation(

+ 31 - 37
src/client/admin/pages/Expenses.tsx

@@ -91,50 +91,44 @@ const Expenses: React.FC = () => {
   });
 
   // 创建费用记录
-  const createExpense = useMutation(
-    (data: CreateExpenseRequest) => expenseClient.$post({ json: data }),
-    {
-      onSuccess: () => {
-        apiLogger('Expense created successfully');
-        antdMessage.success('费用记录创建成功');
-        queryClient.invalidateQueries(['expenses']);
-      },
-      onError: (error) => {
-        errorLogger('Failed to create expense:', error);
-        antdMessage.error('创建费用记录失败');
-      }
+  const createExpense = useMutation({
+    mutationFn: (data: CreateExpenseRequest) => expenseClient.$post({ json: data }),
+    onSuccess: () => {
+      apiLogger('Expense created successfully');
+      antdMessage.success('费用记录创建成功');
+      queryClient.invalidateQueries({ queryKey: ['expenses'] });
+    },
+    onError: (error) => {
+      errorLogger('Failed to create expense:', error);
+      antdMessage.error('创建费用记录失败');
     }
-  );
+  });
 
   // 更新费用记录
-  const updateExpense = useMutation(
-    ({ id, data }: { id: string; data: UpdateExpenseRequest }) => expenseClient[':id'].$put({ param: { id }, json: data }),
-    {
-      onSuccess: () => {
-        apiLogger('Expense updated successfully');
-        antdMessage.success('费用记录更新成功');
-        queryClient.invalidateQueries(['expenses']);
-      },
-      onError: (error) => {
-        errorLogger('Failed to update expense:', error);
-        antdMessage.error('更新费用记录失败');
-      }
+  const updateExpense = useMutation({
+    mutationFn: ({ id, data }: { id: string; data: UpdateExpenseRequest }) => expenseClient[':id'].$put({ param: { id }, json: data }),
+    onSuccess: () => {
+      apiLogger('Expense updated successfully');
+      antdMessage.success('费用记录更新成功');
+      queryClient.invalidateQueries({ queryKey: ['expenses'] });
+    },
+    onError: (error) => {
+      errorLogger('Failed to update expense:', error);
+      antdMessage.error('更新费用记录失败');
     }
   );
 
   // 删除费用记录
-  const deleteExpense = useMutation(
-    (id: string) => expenseClient[':id'].$delete({ param: { id } }),
-    {
-      onSuccess: () => {
-        apiLogger('Expense deleted successfully');
-        antdMessage.success('费用记录删除成功');
-        queryClient.invalidateQueries(['expenses']);
-      },
-      onError: (error) => {
-        errorLogger('Failed to delete expense:', error);
-        antdMessage.error('删除费用记录失败');
-      }
+  const deleteExpense = useMutation({
+    mutationFn: (id: string) => expenseClient[':id'].$delete({ param: { id } }),
+    onSuccess: () => {
+      apiLogger('Expense deleted successfully');
+      antdMessage.success('费用记录删除成功');
+      queryClient.invalidateQueries({ queryKey: ['expenses'] });
+    },
+    onError: (error) => {
+      errorLogger('Failed to delete expense:', error);
+      antdMessage.error('删除费用记录失败');
     }
   );
 

+ 20 - 24
src/client/admin/pages/Files.tsx

@@ -96,34 +96,30 @@ const Files: React.FC = () => {
   };
   
   // 创建文件记录
-  const createFile = useMutation(
-    (data: any) => fileClient.$post({ json: data }),
-    {
-      onSuccess: () => {
-        message.success('文件记录创建成功');
-        queryClient.invalidateQueries(['files']);
-        setModalVisible(false);
-      },
-      onError: () => {
-        message.error('操作失败,请重试');
-      }
+  const createFile = useMutation({
+    mutationFn: (data: any) => fileClient.$post({ json: data }),
+    onSuccess: () => {
+      message.success('文件记录创建成功');
+      queryClient.invalidateQueries({ queryKey: ['files'] });
+      setModalVisible(false);
+    },
+    onError: () => {
+      message.error('操作失败,请重试');
     }
-  );
+  });
   
   // 更新文件记录
-  const updateFile = useMutation(
-    ({ id, data }: { id: string; data: any }) => fileClient[':id'].$put({ param: { id }, json: data }),
-    {
-      onSuccess: () => {
-        message.success('文件记录更新成功');
-        queryClient.invalidateQueries(['files']);
-        setModalVisible(false);
-      },
-      onError: () => {
-        message.error('操作失败,请重试');
-      }
+  const updateFile = useMutation({
+    mutationFn: ({ id, data }: { id: string; data: any }) => fileClient[':id'].$put({ param: { id }, json: data }),
+    onSuccess: () => {
+      message.success('文件记录更新成功');
+      queryClient.invalidateQueries({ queryKey: ['files'] });
+      setModalVisible(false);
+    },
+    onError: () => {
+      message.error('操作失败,请重试');
     }
-  );
+  });
   
   // 删除文件记录
   const deleteFile = useMutation(