Add ability to toggle embed visibility
Этот коммит содержится в:
@@ -16,16 +16,28 @@ export default class PostBodyAdditionalContent extends React.Component {
|
|||||||
|
|
||||||
this.getSlackAttachment = this.getSlackAttachment.bind(this);
|
this.getSlackAttachment = this.getSlackAttachment.bind(this);
|
||||||
this.getOEmbedProvider = this.getOEmbedProvider.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)) {
|
if (!Utils.areObjectsEqual(nextProps.post, this.props.post)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (nextState.embedVisible !== this.state.embedVisible) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toggleEmbedVisibility() {
|
||||||
|
this.setState({embedVisible: !this.state.embedVisible});
|
||||||
|
}
|
||||||
|
|
||||||
getSlackAttachment() {
|
getSlackAttachment() {
|
||||||
let attachments = [];
|
let attachments = [];
|
||||||
if (this.props.post.props && this.props.post.props.attachments) {
|
if (this.props.post.props && this.props.post.props.attachments) {
|
||||||
@@ -51,7 +63,7 @@ export default class PostBodyAdditionalContent extends React.Component {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
generateEmbed() {
|
||||||
if (this.props.post.type === 'slack_attachment') {
|
if (this.props.post.type === 'slack_attachment') {
|
||||||
return this.getSlackAttachment();
|
return this.getSlackAttachment();
|
||||||
}
|
}
|
||||||
@@ -98,6 +110,28 @@ export default class PostBodyAdditionalContent extends React.Component {
|
|||||||
|
|
||||||
return null;
|
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 = {
|
PostBodyAdditionalContent.propTypes = {
|
||||||
|
|||||||
@@ -479,6 +479,10 @@ export default {
|
|||||||
EMBED_PREVIEW: {
|
EMBED_PREVIEW: {
|
||||||
label: 'embed_preview',
|
label: 'embed_preview',
|
||||||
description: 'Show preview snippet of links below message'
|
description: 'Show preview snippet of links below message'
|
||||||
|
},
|
||||||
|
EMBED_TOGGLE: {
|
||||||
|
label: 'embed_toggle',
|
||||||
|
description: 'Show toggle for all embed previews'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
OVERLAY_TIME_DELAY: 400,
|
OVERLAY_TIME_DELAY: 400,
|
||||||
|
|||||||
@@ -408,7 +408,7 @@ body.ios {
|
|||||||
|
|
||||||
.post {
|
.post {
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
padding: 8px 1em 0;
|
padding: 8px .5em 0 1em;
|
||||||
position: relative;
|
position: relative;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
@include legacy-pie-clearfix;
|
@include legacy-pie-clearfix;
|
||||||
@@ -457,7 +457,7 @@ body.ios {
|
|||||||
&.same--root {
|
&.same--root {
|
||||||
|
|
||||||
&.same--user {
|
&.same--user {
|
||||||
padding: 0 1em;
|
padding: 0 .5em 0 1em;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
||||||
@@ -629,6 +629,16 @@ body.ios {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.post__embed-container{
|
||||||
|
display: block;
|
||||||
|
max-height: 1000px;
|
||||||
|
transition: max-height .5s ease;
|
||||||
|
overflow: hidden;
|
||||||
|
&[hidden]{
|
||||||
|
max-height: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.dropdown {
|
.dropdown {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
@@ -687,7 +697,7 @@ body.ios {
|
|||||||
|
|
||||||
.post__body {
|
.post__body {
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
padding: 0.2em 0.5em 0em;
|
padding: 0.2em 0.5em;
|
||||||
@include legacy-pie-clearfix;
|
@include legacy-pie-clearfix;
|
||||||
width: calc(100% - 75px);
|
width: calc(100% - 75px);
|
||||||
|
|
||||||
@@ -753,7 +763,32 @@ body.ios {
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.post__time {
|
.post__embed-visibility {
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
font: normal normal normal 14px/1 FontAwesome;
|
||||||
|
text-rendering: auto;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
font-size: 0;
|
||||||
|
width: 30px;
|
||||||
|
margin-top: -5px;
|
||||||
|
|
||||||
|
&:hover{
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "\f065";
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&[data-expanded="true"]:before{
|
||||||
|
content: "\f066";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.post__time{
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1058,6 +1058,7 @@
|
|||||||
"tutorial_tip.out": "Opt out of these tips.",
|
"tutorial_tip.out": "Opt out of these tips.",
|
||||||
"tutorial_tip.seen": "Seen this before? ",
|
"tutorial_tip.seen": "Seen this before? ",
|
||||||
"upload_overlay.info": "Drop a file to upload it.",
|
"upload_overlay.info": "Drop a file to upload it.",
|
||||||
|
"user.settings.advance.embed_toggle": "Show toggle for all embed previews",
|
||||||
"user.settings.advance.embed_preview": "Show preview snippet of links below message",
|
"user.settings.advance.embed_preview": "Show preview snippet of links below message",
|
||||||
"user.settings.advance.enabled": "enabled",
|
"user.settings.advance.enabled": "enabled",
|
||||||
"user.settings.advance.feature": " Feature ",
|
"user.settings.advance.feature": " Feature ",
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user