feat: delete batch messages

This commit is contained in:
Tristan Yang
2023-07-11 17:57:21 +08:00
parent 7da056874a
commit ef09c9fdf3
2 changed files with 19 additions and 4 deletions
+7
View File
@@ -41,6 +41,12 @@ export const messageApi = createApi({
method: "DELETE"
})
}),
deleteMessages: builder.query<number, number[]>({
query: (mids) => ({
url: `/message/${mids}`,
method: "DELETE"
})
}),
prepareUploadFile: builder.mutation<string, { content_type: string; filename: string }>({
query: (meta = { content_type: "", filename: "" }) => ({
url: `/resource/file/prepare`,
@@ -279,6 +285,7 @@ export const {
useReactMessageMutation,
useReplyMessageMutation,
useLazyDeleteMessageQuery,
useLazyDeleteMessagesQuery,
useReadMessageMutation,
useCreateArchiveMutation,
useLazyLoadMoreMessagesQuery
+12 -4
View File
@@ -1,16 +1,19 @@
import { useState } from "react";
import { useLazyDeleteMessageQuery } from "@/app/services/message";
import { useLazyDeleteMessageQuery, useLazyDeleteMessagesQuery } from "@/app/services/message";
import { useAppSelector } from "@/app/store";
import { compareVersion } from "@/utils";
export default function useDeleteMessage() {
const [deleting, setDeleting] = useState(false);
const { loginUser, messageData } = useAppSelector((store) => {
const { loginUser, messageData, serverVersion } = useAppSelector((store) => {
return {
serverVersion: store.server.version,
messageData: store.message,
loginUser: store.authData.user
};
});
const [batchRemove] = useLazyDeleteMessagesQuery();
const [
remove
// { isError, isLoading, isSuccess },
@@ -19,8 +22,13 @@ export default function useDeleteMessage() {
if (!mids) return;
const _arr = Array.isArray(mids) ? mids : [mids];
setDeleting(true);
for await (const mid of _arr) {
await remove(mid);
if (compareVersion(serverVersion, "0.3.10") > -1) {
// batch delete
await batchRemove(_arr);
} else {
for await (const mid of _arr) {
await remove(mid);
}
}
setDeleting(false);
};