Detailed status view scrollable
parent
ab7291b8fe
commit
08896f7dcf
|
@ -4,7 +4,8 @@ import PureRenderMixin from 'react-addons-pure-render-mixin';
|
||||||
const MediaGallery = React.createClass({
|
const MediaGallery = React.createClass({
|
||||||
|
|
||||||
propTypes: {
|
propTypes: {
|
||||||
media: ImmutablePropTypes.list.isRequired
|
media: ImmutablePropTypes.list.isRequired,
|
||||||
|
height: React.PropTypes.number.isRequired
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [PureRenderMixin],
|
mixins: [PureRenderMixin],
|
||||||
|
@ -63,7 +64,7 @@ const MediaGallery = React.createClass({
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={{ marginTop: '8px', overflow: 'hidden', width: '100%', height: '110px', boxSizing: 'border-box' }}>
|
<div style={{ marginTop: '8px', overflow: 'hidden', width: '100%', height: `${this.props.height}px`, boxSizing: 'border-box' }}>
|
||||||
{children}
|
{children}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -69,7 +69,7 @@ const Status = React.createClass({
|
||||||
if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
|
if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
|
||||||
media = <VideoPlayer media={status.getIn(['media_attachments', 0])} />;
|
media = <VideoPlayer media={status.getIn(['media_attachments', 0])} />;
|
||||||
} else {
|
} else {
|
||||||
media = <MediaGallery media={status.get('media_attachments')} />;
|
media = <MediaGallery media={status.get('media_attachments')} height={110} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,8 @@ function selectStatuses(state, ids) {
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
status: selectStatus(state, Number(props.params.statusId)),
|
status: selectStatus(state, Number(props.params.statusId)),
|
||||||
ancestors: selectStatuses(state, state.getIn(['timelines', 'ancestors', Number(props.params.statusId)], Immutable.List())),
|
ancestors: selectStatuses(state, state.getIn(['timelines', 'ancestors', Number(props.params.statusId)], Immutable.OrderedSet())),
|
||||||
descendants: selectStatuses(state, state.getIn(['timelines', 'descendants', Number(props.params.statusId)], Immutable.List()))
|
descendants: selectStatuses(state, state.getIn(['timelines', 'descendants', Number(props.params.statusId)], Immutable.OrderedSet()))
|
||||||
});
|
});
|
||||||
|
|
||||||
const Status = React.createClass({
|
const Status = React.createClass({
|
||||||
|
@ -35,8 +35,8 @@ const Status = React.createClass({
|
||||||
params: React.PropTypes.object.isRequired,
|
params: React.PropTypes.object.isRequired,
|
||||||
dispatch: React.PropTypes.func.isRequired,
|
dispatch: React.PropTypes.func.isRequired,
|
||||||
status: ImmutablePropTypes.map,
|
status: ImmutablePropTypes.map,
|
||||||
ancestors: ImmutablePropTypes.list.isRequired,
|
ancestors: ImmutablePropTypes.orderedSet.isRequired,
|
||||||
descendants: ImmutablePropTypes.list.isRequired
|
descendants: ImmutablePropTypes.orderedSet.isRequired
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [PureRenderMixin],
|
mixins: [PureRenderMixin],
|
||||||
|
@ -74,11 +74,15 @@ const Status = React.createClass({
|
||||||
return <div>Loading {this.props.params.statusId}...</div>;
|
return <div>Loading {this.props.params.statusId}...</div>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const account = status.get('account');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div style={{ overflowY: 'scroll', flex: '1 1 auto' }} className='scrollable'>
|
||||||
{this.renderChildren(ancestors)}
|
<div>{this.renderChildren(ancestors)}</div>
|
||||||
|
|
||||||
<EmbeddedStatus status={status} onReply={this.handleReplyClick} onFavourite={this.handleFavouriteClick} onReblog={this.handleReblogClick} />
|
<EmbeddedStatus status={status} onReply={this.handleReplyClick} onFavourite={this.handleFavouriteClick} onReblog={this.handleReblogClick} />
|
||||||
{this.renderChildren(descendants)}
|
|
||||||
|
<div>{this.renderChildren(descendants)}</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue