feat: favorite message

This commit is contained in:
zerosoul
2022-04-28 10:55:24 +08:00
parent a4617765b6
commit 4ce14b8009
6 changed files with 143 additions and 6 deletions
@@ -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>
);
}
+12 -3
View File
@@ -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;