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