import React from "react"
import escapeHtml from "misago/utils/escape-html"
const DATE_ABBR = '%(relative)s'
const USER_SPAN = '%(user)s'
const USER_URL = '%(user)s'
export default function(props) {
return (
)
}
export function PollCreation(props) {
const message = interpolate(
escapeHtml(gettext("Posted by %(poster)s %(posted_on)s.")),
{
poster: getPoster(props.poll),
posted_on: getPostedOn(props.poll)
},
true
)
return (
)
}
export function getPoster(poll) {
if (poll.url.poster) {
return interpolate(
USER_URL,
{
url: escapeHtml(poll.url.poster),
user: escapeHtml(poll.poster_name)
},
true
)
}
return interpolate(
USER_SPAN,
{
user: escapeHtml(poll.poster_name)
},
true
)
}
export function getPostedOn(poll) {
return interpolate(
DATE_ABBR,
{
absolute: escapeHtml(poll.posted_on.format("LLL")),
relative: escapeHtml(poll.posted_on.fromNow())
},
true
)
}
export function PollLength(props) {
if (!props.poll.length) {
return null
}
const message = interpolate(
escapeHtml(gettext("Voting ends %(ends_on)s.")),
{
ends_on: getEndsOn(props.poll)
},
true
)
return (
)
}
export function getEndsOn(poll) {
return interpolate(
DATE_ABBR,
{
absolute: escapeHtml(poll.endsOn.format("LLL")),
relative: escapeHtml(poll.endsOn.fromNow())
},
true
)
}
export function PollVotes(props) {
const message = ngettext("%(votes)s vote.", "%(votes)s votes.", props.votes)
const label = interpolate(
message,
{
votes: props.votes
},
true
)
return {label}
}
export function PollIsPublic(props) {
if (!props.poll.is_public) {
return null
}
return {gettext("Votes are public.")}
}