diff options
author | David Yip <yipdw@member.fsf.org> | 2017-12-04 11:07:01 -0600 |
---|---|---|
committer | David Yip <yipdw@member.fsf.org> | 2017-12-04 11:07:01 -0600 |
commit | d9800a5647cbc57db7679094b2271f8eb5ec328b (patch) | |
tree | f9210c465de5f9d80e294d9ffa8536f98f9c466e /app/javascript/flavours/glitch/features/status | |
parent | 1c74ede69e7a9916c19da6f05daa215231eba81c (diff) | |
parent | f2f2f1032082d6212771bd0307136484f671d37e (diff) |
Merge branch 'gs-master' into glitch-theme
Diffstat (limited to 'app/javascript/flavours/glitch/features/status')
-rw-r--r-- | app/javascript/flavours/glitch/features/status/components/detailed_status.js | 4 | ||||
-rw-r--r-- | app/javascript/flavours/glitch/features/status/index.js | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.js b/app/javascript/flavours/glitch/features/status/components/detailed_status.js index 7c6f436d6..0cb5238b0 100644 --- a/app/javascript/flavours/glitch/features/status/components/detailed_status.js +++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.js @@ -41,7 +41,7 @@ export default class DetailedStatus extends ImmutablePureComponent { render () { const status = this.props.status.get('reblog') ? this.props.status.get('reblog') : this.props.status; - const { settings } = this.props; + const { expanded, setExpansion, settings } = this.props; let media = ''; let mediaIcon = null; @@ -109,6 +109,8 @@ export default class DetailedStatus extends ImmutablePureComponent { status={status} media={media} mediaIcon={mediaIcon} + expanded={expanded} + setExpansion={setExpansion} /> <div className='detailed-status__meta'> diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index 73b212bba..93b0fe9d9 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -71,6 +71,7 @@ export default class Status extends ImmutablePureComponent { state = { fullscreen: false, + isExpanded: null, }; componentWillMount () { @@ -88,6 +89,12 @@ export default class Status extends ImmutablePureComponent { } } + handleExpandedToggle = () => { + if (this.props.status.get('spoiler_text')) { + this.setExpansion(this.state.isExpanded ? null : true); + } + }; + handleFavouriteClick = (status) => { if (status.get('favourited')) { this.props.dispatch(unfavourite(status)); @@ -241,6 +248,10 @@ export default class Status extends ImmutablePureComponent { )); } + setExpansion = value => { + this.setState({ isExpanded: value ? true : null }); + } + setRef = c => { this.node = c; } @@ -272,8 +283,9 @@ export default class Status extends ImmutablePureComponent { render () { let ancestors, descendants; + const { setExpansion } = this; const { status, settings, ancestorsIds, descendantsIds } = this.props; - const { fullscreen } = this.state; + const { fullscreen, isExpanded } = this.state; if (status === null) { return ( @@ -300,6 +312,7 @@ export default class Status extends ImmutablePureComponent { boost: this.handleHotkeyBoost, mention: this.handleHotkeyMention, openProfile: this.handleHotkeyOpenProfile, + toggleSpoiler: this.handleExpandedToggle, }; return ( @@ -317,6 +330,8 @@ export default class Status extends ImmutablePureComponent { settings={settings} onOpenVideo={this.handleOpenVideo} onOpenMedia={this.handleOpenMedia} + expanded={isExpanded} + setExpansion={setExpansion} /> <ActionBar |