diff --git a/src/components/navigation/left/common.ts b/src/components/navigation/left/common.ts index 208f795036ba2e4caf8d951fb4d87b04cf771674..12d8f9b714771f3193cf1b1505e8004381d8b063 100644 --- a/src/components/navigation/left/common.ts +++ b/src/components/navigation/left/common.ts @@ -25,9 +25,10 @@ export function useUnreads({ channel, unreads, dispatcher }: UnreadProps, contex dispatcher({ type: "UNREADS_MARK_READ", channel: channel._id, - message, - request: true + message }); + + ctx.client.req('PUT', `/channels/${channel._id}/ack/${message}` as '/channels/id/ack/id'); } } } diff --git a/src/context/revoltjs/events.ts b/src/context/revoltjs/events.ts index fea22e7f2a6ceac8954106a3337b26d05a18c0fe..b6fba620f69331582f8ce705b5c22435c536b02f 100644 --- a/src/context/revoltjs/events.ts +++ b/src/context/revoltjs/events.ts @@ -62,8 +62,7 @@ export function registerEvents({ dispatcher({ type: "UNREADS_MARK_READ", channel: packet.id, - message: packet.message_id, - request: false + message: packet.message_id }); break; } diff --git a/src/lib/ContextMenus.tsx b/src/lib/ContextMenus.tsx index 80797e256b1724acb8eb6a7280b0a4b21a34bb4c..73e54033e9945802cc63e1b4e916c3069ef1b9d4 100644 --- a/src/lib/ContextMenus.tsx +++ b/src/lib/ContextMenus.tsx @@ -91,13 +91,18 @@ function ContextMenus(props: WithDispatcher) { writeClipboard(document.getSelection()?.toString() ?? ''); break; case "mark_as_read": - if (data.channel.channel_type === 'SavedMessages') return; - props.dispatcher({ - type: "UNREADS_MARK_READ", - channel: data.channel._id, - message: data.channel.channel_type === 'TextChannel' ? data.channel.last_message : data.channel.last_message._id, - request: true - }); + { + if (data.channel.channel_type === 'SavedMessages') return; + + let message = data.channel.channel_type === 'TextChannel' ? data.channel.last_message : data.channel.last_message._id; + props.dispatcher({ + type: "UNREADS_MARK_READ", + channel: data.channel._id, + message + }); + + client.req('PUT', `/channels/${data.channel._id}/ack/${message}` as '/channels/id/ack/id'); + } break; case "retry_message": diff --git a/src/redux/reducers/unreads.ts b/src/redux/reducers/unreads.ts index f7f640a63b310e6b9a867f55255fb00040a3127a..290afdcbd3a2ab991f708df24d252657227dcbef 100644 --- a/src/redux/reducers/unreads.ts +++ b/src/redux/reducers/unreads.ts @@ -10,7 +10,6 @@ export type UnreadsAction = type: "UNREADS_MARK_READ"; channel: string; message: string; - request: boolean; } | { type: "UNREADS_SET"; @@ -28,10 +27,6 @@ export type UnreadsAction = export function unreads(state = {} as Unreads, action: UnreadsAction): Unreads { switch (action.type) { case "UNREADS_MARK_READ": - if (action.request) { - // client.req('PUT', `/channels/${action.channel}/ack/${action.message}` as '/channels/id/ack/id'); - } - return { ...state, [action.channel]: {