feat: favorite message
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
// import React from "react";
|
||||
import { useState } from "react";
|
||||
import useDeleteMessage from "../hook/useDeleteMessage";
|
||||
import StyledModal from "./styled/Modal";
|
||||
import Button from "./styled/Button";
|
||||
import Modal from "./Modal";
|
||||
import PreviewMessage from "./Message/PreviewMessage";
|
||||
export default function DeleteMessageConfirmModal({ closeModal, mids = [] }) {
|
||||
// const dispatch = useDispatch();
|
||||
const mid_arr = mids ? (Array.isArray(mids) ? mids : [mids]) : [];
|
||||
const [ids] = useState(mid_arr);
|
||||
const { deleteMessage, isDeleting } = useDeleteMessage();
|
||||
const handleDelete = async () => {
|
||||
await deleteMessage(ids);
|
||||
closeModal(true);
|
||||
};
|
||||
|
||||
if (ids.length == 0) return null;
|
||||
return (
|
||||
<Modal>
|
||||
<StyledModal
|
||||
// className="animate__animated animate__fadeInDown animate__faster"
|
||||
buttons={
|
||||
<>
|
||||
<Button onClick={closeModal.bind(null, false)}>Cancel</Button>
|
||||
<Button
|
||||
disabled={isDeleting}
|
||||
onClick={handleDelete}
|
||||
className="danger"
|
||||
>
|
||||
{isDeleting ? "Deleting" : `Delete`}
|
||||
</Button>
|
||||
</>
|
||||
}
|
||||
title="Delete Message"
|
||||
description={`Are you sure want to delete ${
|
||||
ids.length > 1 ? "these messages" : "this message"
|
||||
}?`}
|
||||
>
|
||||
{ids.length == 1 && <PreviewMessage mid={ids[0]} />}
|
||||
</StyledModal>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
@@ -70,7 +70,15 @@ export default function FileMessage({
|
||||
useEffect(() => {
|
||||
const props = properties ?? {};
|
||||
const propsV2 = imageSize ? { ...props, ...imageSize } : props;
|
||||
if (uploadSuccess) {
|
||||
// 本地文件 并且上传成功
|
||||
if (uploadSuccess && content.startsWith("blob:")) {
|
||||
console.log(
|
||||
"send local file message",
|
||||
uploadSuccess,
|
||||
propsV2,
|
||||
data,
|
||||
content
|
||||
);
|
||||
// 把已经上传的东西当做消息发出去
|
||||
const { path } = data;
|
||||
sendMessage({
|
||||
@@ -80,15 +88,16 @@ export default function FileMessage({
|
||||
properties: propsV2,
|
||||
});
|
||||
}
|
||||
}, [uploadSuccess, data, properties]);
|
||||
}, [uploadSuccess, data, properties, content]);
|
||||
useEffect(() => {
|
||||
if (sendMessageSuccess) {
|
||||
// 回收本地资源
|
||||
// URL.revokeObjectURL(content);
|
||||
URL.revokeObjectURL(content);
|
||||
}
|
||||
}, [sendMessageSuccess, content]);
|
||||
const handleCancel = () => {
|
||||
stopUploading();
|
||||
URL.revokeObjectURL(content);
|
||||
removeLocalMessage(properties.local_id);
|
||||
};
|
||||
if (!properties) return null;
|
||||
|
||||
Reference in New Issue
Block a user