Browse Source

feat: able to delete message now

JustSong 2 years ago
parent
commit
fe7d726dee
1 changed files with 20 additions and 7 deletions
  1. 20 7
      web/src/components/MessagesTable.js

+ 20 - 7
web/src/components/MessagesTable.js

@@ -1,6 +1,6 @@
 import React, { useEffect, useState } from 'react';
 import { Button, Form, Label, Modal, Pagination, Table } from 'semantic-ui-react';
-import { API, openPage, showError } from '../helpers';
+import { API, openPage, showError, showSuccess } from '../helpers';
 
 import { ITEMS_PER_PAGE } from '../constants';
 
@@ -172,14 +172,25 @@ const MessagesTable = () => {
     setLoading(false);
   };
 
-  const resendMessage = (id) => {
+  const resendMessage = async (id) => {
     // TODO: Implement resendMessage
     console.log('resendMessage', id);
   };
 
-  const deleteMessage = (id) => {
-    // TODO: Implement deleteMessage
-    console.log('deleteMessage', id);
+  const deleteMessage = async (id, idx) => {
+    setLoading(true);
+    const res = await API.delete(`/api/message/${id}`);
+    const { success, message } = res.data;
+    if (success) {
+      showSuccess('操作成功完成!');
+      let newMessages = [...messages];
+      let realIdx = (activePage - 1) * ITEMS_PER_PAGE + idx;
+      newMessages[realIdx].deleted = true;
+      setMessages(newMessages);
+    } else {
+      showError(message);
+    }
+    setLoading(false);
   };
 
   const searchMessages = async () => {
@@ -311,8 +322,9 @@ const MessagesTable = () => {
                       <Button
                         size={'small'}
                         color={'yellow'}
+                        loading={loading}
                         onClick={() => {
-                          resendMessage(message.id);
+                          resendMessage(message.id).then();
                         }}
                       >
                         重发
@@ -320,8 +332,9 @@ const MessagesTable = () => {
                       <Button
                         size={'small'}
                         negative
+                        loading={loading}
                         onClick={() => {
-                          deleteMessage(message.id);
+                          deleteMessage(message.id, idx).then();
                         }}
                       >
                         删除