Remove react-dnd as it was interfering with text selection. Move content

warning mentions preview into area where actual content would be
This commit is contained in:
Eugen Rochko
2017-02-05 04:11:14 +01:00
parent fb6aa7ad5c
commit b5bf807a34
5 changed files with 17 additions and 57 deletions

View File

@ -97,11 +97,12 @@ const StatusContent = React.createClass({
const { status } = this.props;
const { hidden } = this.state;
const content = { __html: emojify(status.get('content')) };
const spoilerContent = { __html: emojify(escapeTextContentForBrowser(status.get('spoiler_text', ''))) };
if (status.get('spoiler_text').length > 0) {
let mentionsPlaceholder = '';
const mentionLinks = status.get('mentions').map(item => (
<Permalink to={`/accounts/${item.get('id')}`} href={item.get('url')} key={item.get('id')} className='mention'>
@<span>{item.get('username')}</span>
@ -110,13 +111,18 @@ const StatusContent = React.createClass({
const toggleText = hidden ? <FormattedMessage id='status.show_more' defaultMessage='Show more' /> : <FormattedMessage id='status.show_less' defaultMessage='Show less' />;
if (hidden) {
mentionsPlaceholder = <div>{mentionLinks}</div>;
}
return (
<div className='status__content' style={{ cursor: 'pointer' }} onMouseDown={this.handleMouseDown} onMouseUp={this.handleMouseUp}>
<p style={{ marginBottom: hidden ? '0px' : '' }} >
{mentionLinks}
<p style={{ marginBottom: hidden && mentionLinks.size === 0 ? '0px' : '' }} >
<span dangerouslySetInnerHTML={spoilerContent} /> <a className='status__content__spoiler-link' style={spoilerStyle} onClick={this.handleSpoilerClick}>{toggleText}</a>
</p>
{mentionsPlaceholder}
<div style={{ display: hidden ? 'none' : 'block' }} dangerouslySetInnerHTML={content} />
</div>
);

View File

@ -1,6 +1,5 @@
import ColumnHeader from './column_header';
import PureRenderMixin from 'react-addons-pure-render-mixin';
import { DragSource } from 'react-dnd';
const easingOutQuint = (x, t, b, c, d) => c*((t=t/d-1)*t*t*t*t + 1) + b;
@ -37,22 +36,9 @@ const style = {
flexDirection: 'column'
};
const columnSource = {
beginDrag (props) {
return {};
}
};
const collect = (connect, monitor) => ({
connectDragSource: connect.dragSource(),
isDragging: monitor.isDragging()
});
const Column = React.createClass({
propTypes: {
connectDragSource: React.PropTypes.func.isRequired,
isDragging: React.PropTypes.bool.isRequired,
heading: React.PropTypes.string,
icon: React.PropTypes.string,
children: React.PropTypes.node
@ -72,7 +58,7 @@ const Column = React.createClass({
},
render () {
const { heading, icon, children, connectDragSource, isDragging } = this.props;
const { heading, icon, children } = this.props;
let header = '';
@ -80,8 +66,8 @@ const Column = React.createClass({
header = <ColumnHeader icon={icon} type={heading} onClick={this.handleHeaderClick} />;
}
return connectDragSource(
<div className='column' style={{...style, opacity: isDragging ? '0.5' : '1' }} onWheel={this.handleWheel}>
return (
<div className='column' style={style} onWheel={this.handleWheel}>
{header}
{children}
</div>
@ -90,4 +76,4 @@ const Column = React.createClass({
});
export default DragSource('column', columnSource, collect)(Column);
export default Column;

View File

@ -13,8 +13,6 @@ import { debounce } from 'react-decoration';
import { uploadCompose } from '../../actions/compose';
import { refreshTimeline } from '../../actions/timelines';
import { refreshNotifications } from '../../actions/notifications';
import { DragDropContext } from 'react-dnd';
import HTML5Backend from 'react-dnd-html5-backend';
const UI = React.createClass({
@ -105,4 +103,4 @@ const UI = React.createClass({
});
export default connect()(DragDropContext(HTML5Backend)(UI));
export default connect()(UI);