feat: delete batch messages
This commit is contained in:
@@ -41,6 +41,12 @@ export const messageApi = createApi({
|
|||||||
method: "DELETE"
|
method: "DELETE"
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
|
deleteMessages: builder.query<number, number[]>({
|
||||||
|
query: (mids) => ({
|
||||||
|
url: `/message/${mids}`,
|
||||||
|
method: "DELETE"
|
||||||
|
})
|
||||||
|
}),
|
||||||
prepareUploadFile: builder.mutation<string, { content_type: string; filename: string }>({
|
prepareUploadFile: builder.mutation<string, { content_type: string; filename: string }>({
|
||||||
query: (meta = { content_type: "", filename: "" }) => ({
|
query: (meta = { content_type: "", filename: "" }) => ({
|
||||||
url: `/resource/file/prepare`,
|
url: `/resource/file/prepare`,
|
||||||
@@ -279,6 +285,7 @@ export const {
|
|||||||
useReactMessageMutation,
|
useReactMessageMutation,
|
||||||
useReplyMessageMutation,
|
useReplyMessageMutation,
|
||||||
useLazyDeleteMessageQuery,
|
useLazyDeleteMessageQuery,
|
||||||
|
useLazyDeleteMessagesQuery,
|
||||||
useReadMessageMutation,
|
useReadMessageMutation,
|
||||||
useCreateArchiveMutation,
|
useCreateArchiveMutation,
|
||||||
useLazyLoadMoreMessagesQuery
|
useLazyLoadMoreMessagesQuery
|
||||||
|
|||||||
@@ -1,16 +1,19 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
|
||||||
import { useLazyDeleteMessageQuery } from "@/app/services/message";
|
import { useLazyDeleteMessageQuery, useLazyDeleteMessagesQuery } from "@/app/services/message";
|
||||||
import { useAppSelector } from "@/app/store";
|
import { useAppSelector } from "@/app/store";
|
||||||
|
import { compareVersion } from "@/utils";
|
||||||
|
|
||||||
export default function useDeleteMessage() {
|
export default function useDeleteMessage() {
|
||||||
const [deleting, setDeleting] = useState(false);
|
const [deleting, setDeleting] = useState(false);
|
||||||
const { loginUser, messageData } = useAppSelector((store) => {
|
const { loginUser, messageData, serverVersion } = useAppSelector((store) => {
|
||||||
return {
|
return {
|
||||||
|
serverVersion: store.server.version,
|
||||||
messageData: store.message,
|
messageData: store.message,
|
||||||
loginUser: store.authData.user
|
loginUser: store.authData.user
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
const [batchRemove] = useLazyDeleteMessagesQuery();
|
||||||
const [
|
const [
|
||||||
remove
|
remove
|
||||||
// { isError, isLoading, isSuccess },
|
// { isError, isLoading, isSuccess },
|
||||||
@@ -19,8 +22,13 @@ export default function useDeleteMessage() {
|
|||||||
if (!mids) return;
|
if (!mids) return;
|
||||||
const _arr = Array.isArray(mids) ? mids : [mids];
|
const _arr = Array.isArray(mids) ? mids : [mids];
|
||||||
setDeleting(true);
|
setDeleting(true);
|
||||||
for await (const mid of _arr) {
|
if (compareVersion(serverVersion, "0.3.10") > -1) {
|
||||||
await remove(mid);
|
// batch delete
|
||||||
|
await batchRemove(_arr);
|
||||||
|
} else {
|
||||||
|
for await (const mid of _arr) {
|
||||||
|
await remove(mid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
setDeleting(false);
|
setDeleting(false);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user