diff --git a/js/src/forum/components/ComposePollHero.tsx b/js/src/forum/components/ComposePollHero.tsx index 10c882d7..69767c61 100644 --- a/js/src/forum/components/ComposePollHero.tsx +++ b/js/src/forum/components/ComposePollHero.tsx @@ -3,43 +3,63 @@ import app from 'flarum/forum/app'; import Component, { ComponentAttrs } from 'flarum/common/Component'; import LinkButton from 'flarum/common/components/LinkButton'; import Poll from '../models/Poll'; +import ItemList from 'flarum/common/utils/ItemList'; export interface ComposePollHeroAttrs extends ComponentAttrs { poll: Poll; } export default class ComposePollHero extends Component { - view(): Mithril.Children { - const { poll } = this.attrs; + poll!: Poll; + + oninit(vnode: Mithril.Vnode): void { + super.oninit(vnode); + + this.poll = this.attrs.poll; + } + view(): Mithril.Children { return (
-

{app.translator.trans(`fof-polls.forum.compose.${!!poll.id() ? 'edit' : 'add'}_title`)}

-
- - {app.translator.trans('fof-polls.forum.compose.polls_manager')} - - {poll.exists && ( - - {app.translator.trans('fof-polls.forum.compose.polls_preview')} - - )} -
+

{app.translator.trans(`fof-polls.forum.compose.${!!this.poll.id() ? 'edit' : 'add'}_title`)}

+
{this.controlItems().toArray()}
); } + + controlItems(): ItemList { + const items = new ItemList(); + + items.add( + 'edit', + + {app.translator.trans('fof-polls.forum.compose.polls_manager')} + + ); + + if (this.poll.exists) { + items.add( + 'view', + + {app.translator.trans('fof-polls.forum.compose.polls_preview')} + + ); + } + + return items; + } } diff --git a/js/src/forum/components/index.ts b/js/src/forum/components/index.ts index 19cc5224..bcd3dd0a 100644 --- a/js/src/forum/components/index.ts +++ b/js/src/forum/components/index.ts @@ -3,6 +3,11 @@ import PostPoll from './PostPoll'; import EditPollModal from './EditPollModal'; import ListVotersModal from './ListVotersModal'; import PollForm from './PollForm'; +import ComposePollHero from './ComposePollHero'; +import ComposePollPage from './ComposePollPage'; +import PollsPage from './PollsPage'; +import PollView from './PollView'; +import PollViewPage from './PollViewPage'; export const components = { CreatePollModal, @@ -10,4 +15,9 @@ export const components = { EditPollModal, ListVotersModal, PollForm, + ComposePollHero, + ComposePollPage, + PollsPage, + PollView, + PollViewPage, };