[Glitch] Port polls creation UI from upstream

This commit is contained in:
Thibaut Girka
2019-03-06 12:30:11 +01:00
committed by ThibG
parent 3e5a0bc825
commit 8fe86cebaa
9 changed files with 403 additions and 20 deletions

View File

@@ -98,6 +98,14 @@ const messages = defineMessages({
defaultMessage: 'Upload a file',
id: 'compose.attach.upload',
},
add_poll: {
defaultMessage: 'Add a poll',
id: 'poll_button.add_poll',
},
remove_poll: {
defaultMessage: 'Remove poll',
id: 'poll_button.remove_poll',
},
});
// Handlers.
@@ -160,12 +168,15 @@ export default class ComposerOptions extends React.PureComponent {
acceptContentTypes,
advancedOptions,
disabled,
full,
allowMedia,
hasMedia,
allowPoll,
hasPoll,
intl,
onChangeAdvancedOption,
onChangeSensitivity,
onChangeVisibility,
onTogglePoll,
onModalClose,
onModalOpen,
onToggleSpoiler,
@@ -209,7 +220,7 @@ export default class ComposerOptions extends React.PureComponent {
<div className='composer--options'>
<input
accept={acceptContentTypes}
disabled={disabled || full}
disabled={disabled || !allowMedia}
key={resetFileKey}
onChange={handleChangeFiles}
ref={handleRefFileElement}
@@ -218,7 +229,7 @@ export default class ComposerOptions extends React.PureComponent {
{...hiddenComponent}
/>
<Dropdown
disabled={disabled || full}
disabled={disabled || !allowMedia}
icon='paperclip'
items={[
{
@@ -237,6 +248,19 @@ export default class ComposerOptions extends React.PureComponent {
onModalOpen={onModalOpen}
title={intl.formatMessage(messages.attach)}
/>
<IconButton
active={hasPoll}
disabled={disabled || !allowPoll}
icon='tasks'
inverted
onClick={onTogglePoll}
size={18}
style={{
height: null,
lineHeight: null,
}}
title={intl.formatMessage(hasPoll ? messages.remove_poll : messages.add_poll)}
/>
<Motion
defaultStyle={{ scale: 0.87 }}
style={{
@@ -329,12 +353,15 @@ ComposerOptions.propTypes = {
acceptContentTypes: PropTypes.string,
advancedOptions: ImmutablePropTypes.map,
disabled: PropTypes.bool,
full: PropTypes.bool,
allowMedia: PropTypes.bool,
hasMedia: PropTypes.bool,
allowPoll: PropTypes.bool,
hasPoll: PropTypes.bool,
intl: PropTypes.object.isRequired,
onChangeAdvancedOption: PropTypes.func,
onChangeSensitivity: PropTypes.func,
onChangeVisibility: PropTypes.func,
onTogglePoll: PropTypes.func,
onDoodleOpen: PropTypes.func,
onModalClose: PropTypes.func,
onModalOpen: PropTypes.func,