pleroma-fe/src/services/poll/poll.service.js

32 lines
784 B
JavaScript
Raw Normal View History

2026-01-06 16:23:17 +02:00
import * as DateUtils from 'src/services/date_utils/date_utils.js'
2023-03-10 20:16:03 -05:00
const pollFallbackValues = {
pollType: 'single',
options: ['', ''],
expiryAmount: 10,
2026-01-06 16:22:52 +02:00
expiryUnit: 'minutes',
2023-03-10 20:16:03 -05:00
}
2026-07-22 01:21:33 +03:00
export const pollFallback = (object, attr) => {
2023-03-10 20:16:03 -05:00
return object[attr] !== undefined ? object[attr] : pollFallbackValues[attr]
}
2026-07-22 01:21:33 +03:00
export const pollFormToMasto = (poll) => {
2023-03-10 20:16:03 -05:00
const expiresIn = DateUtils.unitToSeconds(
pollFallback(poll, 'expiryUnit'),
2026-01-06 16:22:52 +02:00
pollFallback(poll, 'expiryAmount'),
2023-03-10 20:16:03 -05:00
)
2026-08-04 16:38:17 +03:00
const options = [
...new Set(pollFallback(poll, 'options').filter((option) => option !== '')),
]
2023-03-10 20:16:03 -05:00
if (options.length < 2) {
return { errorKey: 'polls.not_enough_options' }
}
return {
options,
multiple: pollFallback(poll, 'pollType') === 'multiple',
2026-01-06 16:22:52 +02:00
expiresIn,
2023-03-10 20:16:03 -05:00
}
}