[Glitch] Port polls creation UI from upstream
This commit is contained in:
@@ -31,6 +31,7 @@ import {
|
||||
openModal,
|
||||
} from 'flavours/glitch/actions/modal';
|
||||
import { changeLocalSetting } from 'flavours/glitch/actions/local_settings';
|
||||
import { addPoll, removePoll } from 'flavours/glitch/actions/compose';
|
||||
|
||||
// Components.
|
||||
import ComposerOptions from './options';
|
||||
@@ -39,6 +40,7 @@ import ComposerReply from './reply';
|
||||
import ComposerSpoiler from './spoiler';
|
||||
import ComposerTextarea from './textarea';
|
||||
import ComposerUploadForm from './upload_form';
|
||||
import ComposerPollForm from './poll_form';
|
||||
import ComposerWarning from './warning';
|
||||
import ComposerHashtagWarning from './hashtag_warning';
|
||||
import ComposerDirectWarning from './direct_warning';
|
||||
@@ -102,6 +104,7 @@ function mapStateToProps (state) {
|
||||
suggestions: state.getIn(['compose', 'suggestions']),
|
||||
text: state.getIn(['compose', 'text']),
|
||||
anyMedia: state.getIn(['compose', 'media_attachments']).size > 0,
|
||||
poll: state.getIn(['compose', 'poll']),
|
||||
spoilersAlwaysOn: spoilersAlwaysOn,
|
||||
mediaDescriptionConfirmation: state.getIn(['local_settings', 'confirm_missing_media_description']),
|
||||
preselectOnReply: state.getIn(['local_settings', 'preselect_on_reply']),
|
||||
@@ -134,6 +137,15 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||
onChangeVisibility(value) {
|
||||
dispatch(changeComposeVisibility(value));
|
||||
},
|
||||
onTogglePoll() {
|
||||
dispatch((_, getState) => {
|
||||
if (getState().getIn(['compose', 'poll'])) {
|
||||
dispatch(removePoll());
|
||||
} else {
|
||||
dispatch(addPoll());
|
||||
}
|
||||
});
|
||||
},
|
||||
onClearSuggestions() {
|
||||
dispatch(clearComposeSuggestions());
|
||||
},
|
||||
@@ -394,6 +406,7 @@ class Composer extends React.Component {
|
||||
isUploading,
|
||||
layout,
|
||||
media,
|
||||
poll,
|
||||
onCancelReply,
|
||||
onChangeAdvancedOption,
|
||||
onChangeDescription,
|
||||
@@ -401,6 +414,7 @@ class Composer extends React.Component {
|
||||
onChangeSpoilerness,
|
||||
onChangeText,
|
||||
onChangeVisibility,
|
||||
onTogglePoll,
|
||||
onClearSuggestions,
|
||||
onCloseModal,
|
||||
onFetchSuggestions,
|
||||
@@ -463,30 +477,38 @@ class Composer extends React.Component {
|
||||
suggestions={suggestions}
|
||||
value={text}
|
||||
/>
|
||||
{isUploading || media && media.size ? (
|
||||
<ComposerUploadForm
|
||||
intl={intl}
|
||||
media={media}
|
||||
onChangeDescription={onChangeDescription}
|
||||
onOpenFocalPointModal={onOpenFocalPointModal}
|
||||
onRemove={onUndoUpload}
|
||||
progress={progress}
|
||||
uploading={isUploading}
|
||||
handleRef={handleRefUploadForm}
|
||||
/>
|
||||
) : null}
|
||||
<div className='compose-form__modifiers'>
|
||||
{isUploading || media && media.size ? (
|
||||
<ComposerUploadForm
|
||||
intl={intl}
|
||||
media={media}
|
||||
onChangeDescription={onChangeDescription}
|
||||
onOpenFocalPointModal={onOpenFocalPointModal}
|
||||
onRemove={onUndoUpload}
|
||||
progress={progress}
|
||||
uploading={isUploading}
|
||||
handleRef={handleRefUploadForm}
|
||||
/>
|
||||
) : null}
|
||||
{!!poll && (
|
||||
<ComposerPollForm />
|
||||
)}
|
||||
</div>
|
||||
<ComposerOptions
|
||||
acceptContentTypes={acceptContentTypes}
|
||||
advancedOptions={advancedOptions}
|
||||
disabled={isSubmitting}
|
||||
full={media ? media.size >= 4 || media.some(
|
||||
item => item.get('type') === 'video'
|
||||
) : false}
|
||||
allowMedia={!poll && (media ? media.size < 4 && !media.some(
|
||||
item => item.get('type') === 'video'
|
||||
) : true)}
|
||||
hasMedia={media && !!media.size}
|
||||
allowPoll={!(media && !!media.size)}
|
||||
hasPoll={!!poll}
|
||||
intl={intl}
|
||||
onChangeAdvancedOption={onChangeAdvancedOption}
|
||||
onChangeSensitivity={onChangeSensitivity}
|
||||
onChangeVisibility={onChangeVisibility}
|
||||
onTogglePoll={onTogglePoll}
|
||||
onDoodleOpen={onOpenDoodleModal}
|
||||
onModalClose={onCloseModal}
|
||||
onModalOpen={onOpenActionsModal}
|
||||
|
Reference in New Issue
Block a user