Merge branch 'voting-limit' into 'main'

Support infinite voting time for remote polls

See merge request soapbox-pub/soapbox!2853
This commit is contained in:
marcin mikołajczak 2024-01-11 22:43:40 +00:00
commit ab56851ea5
2 changed files with 7 additions and 5 deletions

View file

@ -33,9 +33,11 @@ const PollFooter: React.FC<IPollFooter> = ({ poll, showResults, selected }): JSX
e.preventDefault();
};
const timeRemaining = poll.expired ?
intl.formatMessage(messages.closed) :
<RelativeTimestamp weight='medium' timestamp={poll.expires_at} futureDate />;
const timeRemaining = poll.expires_at && (
poll.expired ?
intl.formatMessage(messages.closed) :
<RelativeTimestamp weight='medium' timestamp={poll.expires_at} futureDate />
);
let votesCount = null;
@ -82,7 +84,7 @@ const PollFooter: React.FC<IPollFooter> = ({ poll, showResults, selected }): JSX
{votesCount}
</Text>
{poll.expires_at && (
{poll.expires_at !== null && (
<>
<Text theme='muted'>&middot;</Text>
<Text weight='medium' theme='muted' data-testid='poll-expiration'>{timeRemaining}</Text>

View file

@ -14,7 +14,7 @@ const pollOptionSchema = z.object({
const pollSchema = z.object({
emojis: filteredArray(customEmojiSchema),
expired: z.boolean().catch(false),
expires_at: z.string().datetime().catch(new Date().toUTCString()),
expires_at: z.string().datetime().nullable().catch(null),
id: z.string(),
multiple: z.boolean().catch(false),
options: z.array(pollOptionSchema).min(2),