0
0
Fork 0

Put poll options behind content warnings (#10983)

* Put poll options behind CWs in WebUI

* Put polls behind CWs on public pages

* Add poll icon to public pages CWs

* Revert to not showing an icon in the CW button
This commit is contained in:
ThibG 2019-06-08 17:40:59 +02:00 committed by Eugen Rochko
parent 20dda5cca0
commit e9ddd5a159
6 changed files with 36 additions and 27 deletions

View file

@ -16,7 +16,6 @@ import { MediaGallery, Video } from '../features/ui/util/async-components';
import { HotKeys } from 'react-hotkeys';
import classNames from 'classnames';
import Icon from 'mastodon/components/icon';
import PollContainer from 'mastodon/containers/poll_container';
import { displayMedia } from '../initial_state';
// We use the component (and not the container) since we do not want
@ -321,9 +320,7 @@ class Status extends ImmutablePureComponent {
status = status.get('reblog');
}
if (status.get('poll')) {
media = <PollContainer pollId={status.get('poll')} />;
} else if (status.get('media_attachments').size > 0) {
if (status.get('media_attachments').size > 0) {
if (this.props.muted) {
media = (
<AttachmentList

View file

@ -5,6 +5,7 @@ import { isRtl } from '../rtl';
import { FormattedMessage } from 'react-intl';
import Permalink from './permalink';
import classnames from 'classnames';
import PollContainer from 'mastodon/containers/poll_container';
import Icon from 'mastodon/components/icon';
const MAX_HEIGHT = 642; // 20px * 32 (+ 2px padding at the top)
@ -191,6 +192,8 @@ export default class StatusContent extends React.PureComponent {
{mentionsPlaceholder}
<div tabIndex={!hidden ? 0 : null} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} lang={status.get('language')} />
{!hidden && !!status.get('poll') && <PollContainer pollId={status.get('poll')} />}
</div>
);
} else if (this.props.onClick) {
@ -212,9 +215,13 @@ export default class StatusContent extends React.PureComponent {
output.push(readMoreButton);
}
if (status.get('poll')) {
output.push(<PollContainer pollId={status.get('poll')} />);
}
return output;
} else {
return (
const output = [
<div
tabIndex='0'
ref={this.setRef}
@ -222,8 +229,14 @@ export default class StatusContent extends React.PureComponent {
style={directionStyle}
dangerouslySetInnerHTML={content}
lang={status.get('language')}
/>
);
/>,
];
if (status.get('poll')) {
output.push(<PollContainer pollId={status.get('poll')} />);
}
return output;
}
}

View file

@ -13,7 +13,6 @@ import Video from '../../video';
import scheduleIdleTask from '../../ui/util/schedule_idle_task';
import classNames from 'classnames';
import Icon from 'mastodon/components/icon';
import PollContainer from 'mastodon/containers/poll_container';
export default class DetailedStatus extends ImmutablePureComponent {
@ -107,9 +106,7 @@ export default class DetailedStatus extends ImmutablePureComponent {
outerStyle.height = `${this.state.height}px`;
}
if (status.get('poll')) {
media = <PollContainer pollId={status.get('poll')} />;
} else if (status.get('media_attachments').size > 0) {
if (status.get('media_attachments').size > 0) {
if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
const video = status.getIn(['media_attachments', 0]);

View file

@ -126,15 +126,15 @@ function main() {
return false;
});
delegate(document, '.status__content__spoiler-link', 'click', ({ target }) => {
const contentEl = target.parentNode.parentNode.querySelector('.e-content');
delegate(document, '.status__content__spoiler-link', 'click', function() {
const contentEl = this.parentNode.parentNode.querySelector('.e-content');
if (contentEl.style.display === 'block') {
contentEl.style.display = 'none';
target.parentNode.style.marginBottom = 0;
this.parentNode.style.marginBottom = 0;
} else {
contentEl.style.display = 'block';
target.parentNode.style.marginBottom = null;
this.parentNode.style.marginBottom = null;
}
return false;