fix: message detail shows only its own images, not everyone's
Build & Deploy (Nix) / build-and-deploy (discord-gateway) (push) Successful in 2m47s
Build & Deploy (Nix) / build-and-deploy (backend) (push) Successful in 3m12s
Build & Deploy (Nix) / build-and-deploy (proxy) (push) Successful in 3m12s
Build & Deploy (Nix) / build-and-deploy (discord-gateway) (push) Successful in 2m47s
Build & Deploy (Nix) / build-and-deploy (backend) (push) Successful in 3m12s
Build & Deploy (Nix) / build-and-deploy (proxy) (push) Successful in 3m12s
useMessageDetail fetch attachments per-channel -> detail view nampilin 10 image terbaru di channel itu (semua orang), bukan image pesan yang diklik. Root cause: getAttachmentsByChannel cuma filter channel_id. - backend: messageQuerySchema + messageId optional; repository tambah eq(message_id) pas messageId ada. Sudah ada index idx_attachments_message. - frontend: getAttachments(channelId, limit, cursor, messageId); useMessageDetail pass id pesan. Verifikasi: backend tsc PASS, frontend tsc PASS + next build PASS. E2E local (tsx + env prod, port 3901): tanpa messageId -> 3 row (termasuk image.png punya message lain); dengan messageId -> tepat 2 row milik pesan itu. psql juga konfirmasi channel-only 3 vs message-filtered 2.
This commit is contained in:
@@ -136,7 +136,9 @@ export function useMessageDetail(id: string | null) {
|
||||
// can race the detail load and see detail.data === undefined.
|
||||
const cid = detail.data?.channel_id;
|
||||
if (!cid) return [];
|
||||
const res = await messagesApi.getAttachments(cid, 10);
|
||||
// messageId filter: attachment list must show only this message's
|
||||
// images, not the latest images from everyone in the channel.
|
||||
const res = await messagesApi.getAttachments(cid, 10, undefined, id ?? "");
|
||||
return res.data;
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user