about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-09-18 13:03:37 +0200
committerEugen Rochko <eugen@zeonfederated.com>2016-09-18 13:03:37 +0200
commit08896f7dcfe2a1732e17d3854ed3d79bdb61c73b (patch)
tree43e749dfade3894b59ad9d1df021b2f000925ab4
parentab7291b8fe78bc03375bb64e3b458488fa8ce96a (diff)
Detailed status view scrollable
-rw-r--r--app/assets/javascripts/components/components/media_gallery.jsx5
-rw-r--r--app/assets/javascripts/components/components/status.jsx2
-rw-r--r--app/assets/javascripts/components/features/status/index.jsx18
3 files changed, 15 insertions, 10 deletions
diff --git a/app/assets/javascripts/components/components/media_gallery.jsx b/app/assets/javascripts/components/components/media_gallery.jsx
index 81bf7c87c..20f9a3d87 100644
--- a/app/assets/javascripts/components/components/media_gallery.jsx
+++ b/app/assets/javascripts/components/components/media_gallery.jsx
@@ -4,7 +4,8 @@ import PureRenderMixin    from 'react-addons-pure-render-mixin';
 const MediaGallery = React.createClass({
 
   propTypes: {
-    media: ImmutablePropTypes.list.isRequired
+    media: ImmutablePropTypes.list.isRequired,
+    height: React.PropTypes.number.isRequired
   },
 
   mixins: [PureRenderMixin],
@@ -63,7 +64,7 @@ const MediaGallery = React.createClass({
     });
 
     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}
       </div>
     );
diff --git a/app/assets/javascripts/components/components/status.jsx b/app/assets/javascripts/components/components/status.jsx
index 020d90a12..1df7f1fcf 100644
--- a/app/assets/javascripts/components/components/status.jsx
+++ b/app/assets/javascripts/components/components/status.jsx
@@ -69,7 +69,7 @@ const Status = React.createClass({
       if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
         media = <VideoPlayer media={status.getIn(['media_attachments', 0])} />;
       } else {
-        media = <MediaGallery media={status.get('media_attachments')} />;
+        media = <MediaGallery media={status.get('media_attachments')} height={110} />;
       }
     }
 
diff --git a/app/assets/javascripts/components/features/status/index.jsx b/app/assets/javascripts/components/features/status/index.jsx
index 39bc2bec5..03719d88e 100644
--- a/app/assets/javascripts/components/features/status/index.jsx
+++ b/app/assets/javascripts/components/features/status/index.jsx
@@ -25,8 +25,8 @@ function selectStatuses(state, ids) {
 
 const mapStateToProps = (state, props) => ({
   status: selectStatus(state, Number(props.params.statusId)),
-  ancestors: selectStatuses(state, state.getIn(['timelines', 'ancestors', Number(props.params.statusId)], Immutable.List())),
-  descendants: selectStatuses(state, state.getIn(['timelines', 'descendants', 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.OrderedSet()))
 });
 
 const Status = React.createClass({
@@ -35,8 +35,8 @@ const Status = React.createClass({
     params: React.PropTypes.object.isRequired,
     dispatch: React.PropTypes.func.isRequired,
     status: ImmutablePropTypes.map,
-    ancestors: ImmutablePropTypes.list.isRequired,
-    descendants: ImmutablePropTypes.list.isRequired
+    ancestors: ImmutablePropTypes.orderedSet.isRequired,
+    descendants: ImmutablePropTypes.orderedSet.isRequired
   },
 
   mixins: [PureRenderMixin],
@@ -74,11 +74,15 @@ const Status = React.createClass({
       return <div>Loading {this.props.params.statusId}...</div>;
     }
 
+    const account = status.get('account');
+
     return (
-      <div>
-        {this.renderChildren(ancestors)}
+      <div style={{ overflowY: 'scroll', flex: '1 1 auto' }} className='scrollable'>
+        <div>{this.renderChildren(ancestors)}</div>
+
         <EmbeddedStatus status={status} onReply={this.handleReplyClick} onFavourite={this.handleFavouriteClick} onReblog={this.handleReblogClick} />
-        {this.renderChildren(descendants)}
+
+        <div>{this.renderChildren(descendants)}</div>
       </div>
     );
   }