32 lines
784 B
JavaScript
32 lines
784 B
JavaScript
import * as DateUtils from 'src/services/date_utils/date_utils.js'
|
|
|
|
const pollFallbackValues = {
|
|
pollType: 'single',
|
|
options: ['', ''],
|
|
expiryAmount: 10,
|
|
expiryUnit: 'minutes',
|
|
}
|
|
|
|
export const pollFallback = (object, attr) => {
|
|
return object[attr] !== undefined ? object[attr] : pollFallbackValues[attr]
|
|
}
|
|
|
|
export const pollFormToMasto = (poll) => {
|
|
const expiresIn = DateUtils.unitToSeconds(
|
|
pollFallback(poll, 'expiryUnit'),
|
|
pollFallback(poll, 'expiryAmount'),
|
|
)
|
|
|
|
const options = [
|
|
...new Set(pollFallback(poll, 'options').filter((option) => option !== '')),
|
|
]
|
|
if (options.length < 2) {
|
|
return { errorKey: 'polls.not_enough_options' }
|
|
}
|
|
|
|
return {
|
|
options,
|
|
multiple: pollFallback(poll, 'pollType') === 'multiple',
|
|
expiresIn,
|
|
}
|
|
}
|