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:36:27 +03:00
|
|
|
const options = [...new Set(
|
2026-01-06 16:22:52 +02:00
|
|
|
pollFallback(poll, 'options').filter((option) => option !== ''),
|
2026-08-04 16:36:27 +03:00
|
|
|
)]
|
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
|
|
|
}
|
|
|
|
|
}
|