remove from pins when msg deleted
parent
900c55e68b
commit
31e2647af5
|
|
@ -282,8 +282,8 @@ export default observer(
|
|||
const unhide = () => setHidden(false);
|
||||
const renderer = getRenderer(channel);
|
||||
useEffect(() => {
|
||||
// Subscribe to the update event for pinned messages
|
||||
const unsubscribe = internalSubscribe(
|
||||
// Subscribe to the update and delete events for pinned messages
|
||||
const unsubscribeUpdate = internalSubscribe(
|
||||
"PinnedMessage",
|
||||
"update",
|
||||
(newMessage: unknown) => {
|
||||
|
|
@ -294,8 +294,22 @@ export default observer(
|
|||
}
|
||||
);
|
||||
|
||||
// Cleanup subscription on unmount
|
||||
return () => unsubscribe();
|
||||
const unsubscribeDelete = internalSubscribe(
|
||||
"PinnedMessage",
|
||||
"delete",
|
||||
(deletedMessageId: unknown) => {
|
||||
const message = deletedMessageId as MessageI;
|
||||
renderer.pinned_messages = renderer.pinned_messages.filter(
|
||||
(msg) => msg._id !== deletedMessageId
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// Cleanup subscriptions on unmount
|
||||
return () => {
|
||||
unsubscribeUpdate();
|
||||
unsubscribeDelete();
|
||||
};
|
||||
}, [renderer]);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { Text } from "preact-i18n";
|
|||
import { ModalForm } from "@revoltchat/ui";
|
||||
|
||||
import Message from "../../../components/common/messaging/Message";
|
||||
import { internalEmit } from "../../../lib/eventEmitter";
|
||||
import { ModalProps } from "../types";
|
||||
|
||||
/**
|
||||
|
|
@ -29,8 +30,9 @@ export default function DeleteMessage({
|
|||
element: <Message message={target} head={true} contrast />,
|
||||
},
|
||||
}}
|
||||
callback={() => target.delete()}
|
||||
submit={{
|
||||
callback={() => {
|
||||
target.delete(); internalEmit("PinnedMessage", "delete", target._id);
|
||||
}} submit={{
|
||||
palette: "error",
|
||||
children: <Text id="app.special.modals.actions.delete" />,
|
||||
}}
|
||||
|
|
|
|||
Loading…
Reference in New Issue