Add ability to toggle embed visibility

Этот коммит содержится в:
Alan Mooiman
2016-02-25 16:33:27 -08:00
родитель b30b4a4293
Коммит 8e34559431
4 изменённых файлов: 81 добавлений и 7 удалений

Просмотреть файл

@@ -16,16 +16,28 @@ export default class PostBodyAdditionalContent extends React.Component {
this.getSlackAttachment = this.getSlackAttachment.bind(this);
this.getOEmbedProvider = this.getOEmbedProvider.bind(this);
this.generateEmbed = this.generateEmbed.bind(this);
this.toggleEmbedVisibility = this.toggleEmbedVisibility.bind(this);
this.state = {
embedVisible: true
};
}
shouldComponentUpdate(nextProps) {
shouldComponentUpdate(nextProps, nextState) {
if (!Utils.areObjectsEqual(nextProps.post, this.props.post)) {
return true;
}
if (nextState.embedVisible !== this.state.embedVisible) {
return true;
}
return false;
}
toggleEmbedVisibility() {
this.setState({embedVisible: !this.state.embedVisible});
}
getSlackAttachment() {
let attachments = [];
if (this.props.post.props && this.props.post.props.attachments) {
@@ -51,7 +63,7 @@ export default class PostBodyAdditionalContent extends React.Component {
return null;
}
render() {
generateEmbed() {
if (this.props.post.type === 'slack_attachment') {
return this.getSlackAttachment();
}
@@ -98,6 +110,28 @@ export default class PostBodyAdditionalContent extends React.Component {
return null;
}
render() {
var generateEmbed = this.generateEmbed();
if (generateEmbed) {
return (
<div>
<a className='post__embed-visibility'
data-expanded={this.state.embedVisible}
aria-label='Toggle Embed Visibility'
onClick={this.toggleEmbedVisibility}
>
</a>
<div className='post__embed-container'
hidden={!this.state.embedVisible}
>
{generateEmbed}
</div>
</div>
);
}
return null;
}
}
PostBodyAdditionalContent.propTypes = {

Просмотреть файл

@@ -479,6 +479,10 @@ export default {
EMBED_PREVIEW: {
label: 'embed_preview',
description: 'Show preview snippet of links below message'
},
EMBED_TOGGLE: {
label: 'embed_toggle',
description: 'Show toggle for all embed previews'
}
},
OVERLAY_TIME_DELAY: 400,