From 6f622a9a8853498a5b44f6c870105c39ff057435 Mon Sep 17 00:00:00 2001 From: TeamAbronDev Date: Mon, 27 Jan 2025 16:14:52 +0330 Subject: [PATCH] emit added --- .../common/messaging/bars/PinnedMessage.tsx | 49 +++++++------------ src/lib/ContextMenus.tsx | 6 ++- src/pages/channels/Channel.tsx | 2 +- 3 files changed, 24 insertions(+), 33 deletions(-) diff --git a/src/components/common/messaging/bars/PinnedMessage.tsx b/src/components/common/messaging/bars/PinnedMessage.tsx index a88a5bef..155cec01 100644 --- a/src/components/common/messaging/bars/PinnedMessage.tsx +++ b/src/components/common/messaging/bars/PinnedMessage.tsx @@ -280,38 +280,28 @@ export default observer( ({ channel }: { channel: Channel; }) => { const [hidden, setHidden] = useState(true); const unhide = () => setHidden(false); - - // useEffect(() => setHidden(false), [last_id]); - // useEffect(() => internalSubscribe("NewMessages", "hide", hide), []); - // useEffect(() => { - // const onKeyDown = (e: KeyboardEvent) => - // e.key === "Escape" && hide(); - - // document.addEventListener("keydown", onKeyDown); - // return () => document.removeEventListener("keydown", onKeyDown); - // }, []); - - // const extendedMessage = new MessageExtendedClass(client); - - - // useEffect(() => { - // if (last_id) { - // try { - // setTimeAgo(dayjs(decodeTime(last_id)).fromNow()); - // } catch (err) { } - // } - // }, [last_id]); - const renderer = getRenderer(channel); + useEffect(() => { + // Subscribe to the update event for pinned messages + const unsubscribe = internalSubscribe( + "PinnedMessage", + "update", + (newMessage: unknown) => { + const message = newMessage as MessageI; + if (!renderer.pinned_messages.find((msg) => msg._id === message._id)) { + renderer.pinned_messages.push(message); + } + } + ); + + // Cleanup subscription on unmount + return () => unsubscribe(); + }, [renderer]); + + + const history = useHistory(); if (renderer.state !== "RENDER") return null; - // if (!last_id) return null; - // if (hidden) return null; - - // console.log(renderer.pinned_messages, "PINNED MESSAGES") - // renderer.pinned_messages.slice().reverse().map((res, i) => { - // console.log(res, 8989) - // }) function truncateText(text: string, chars: number) { if (text.length > chars) { return text.slice(0, chars) + ".."; @@ -321,7 +311,6 @@ export default observer( const client = useClient() - let pinFound = false return ( <> diff --git a/src/lib/ContextMenus.tsx b/src/lib/ContextMenus.tsx index 2812fe1a..b729018e 100644 --- a/src/lib/ContextMenus.tsx +++ b/src/lib/ContextMenus.tsx @@ -214,14 +214,16 @@ export default function ContextMenus() { const index = messages.findIndex( (x) => x._id === data.message._id, ); - + let message if (index > -1) { message = messages[index]; } - console.log(message,7878) + if (message) { + internalEmit("PinnedMessage", "update", message); + } internalEmit("MessageBox", "pin", message); // data.message.channel?.ack(pin_id, true); diff --git a/src/pages/channels/Channel.tsx b/src/pages/channels/Channel.tsx index 32418e39..3a9d022e 100644 --- a/src/pages/channels/Channel.tsx +++ b/src/pages/channels/Channel.tsx @@ -100,7 +100,7 @@ export const Channel = observer( const client = useClient(); const state = useApplicationState(); - if (!client.channels.exists(id) && server_id) { + if (!client.channels.get(id)) { if (server_id) { const server = client.servers.get(server_id); if (server && server.channel_ids.length > 0) {