From cfad5999b2340b6acbc9eb643e115ac7de63b49f Mon Sep 17 00:00:00 2001 From: Marie Date: Thu, 8 May 2025 01:26:56 +0200 Subject: [PATCH] Fix polls not rendering properly in Schedule List --- .../api/endpoints/notes/schedule/list.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/backend/src/server/api/endpoints/notes/schedule/list.ts b/packages/backend/src/server/api/endpoints/notes/schedule/list.ts index 3665348b97..cbf3a961c0 100644 --- a/packages/backend/src/server/api/endpoints/notes/schedule/list.ts +++ b/packages/backend/src/server/api/endpoints/notes/schedule/list.ts @@ -133,6 +133,7 @@ export default class extends Endpoint { // eslint- renote, reply, renoteId: item.note.renote, replyId: item.note.reply, + poll: item.note.poll ? await this.fillPoll(item.note.poll) : undefined, }, }; })); @@ -155,4 +156,21 @@ export default class extends Endpoint { // eslint- } return null; } + + // Pulled from NoteEntityService and modified to work with MiNoteSchedule + // originally planned to use directly from NoteEntityService but since the poll doesn't actually exist yet that doesn't work + @bindThis + private async fillPoll(poll: { multiple: boolean; choices: string[]; expiresAt: string | null }) { + const choices = poll.choices.map(c => ({ + text: c, + votes: 0, // Default to 0 as there will never be any registered votes while scheduled + isVoted: false, // Default to false as the author can't vote anyways since the poll does not exist in the repo yet + })); + + return { + multiple: poll.multiple, + expiresAt: poll.expiresAt ? new Date(poll.expiresAt).toISOString() : null, + choices, + }; + } }