diff options
author | Joram Wilander <jwawilander@gmail.com> | 2016-08-18 18:37:09 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2016-08-18 14:37:09 -0800 |
commit | 4a2fbcaf983e3180e00bb846f4ed65a2670b9251 (patch) | |
tree | d055d3b159465df7c1aa6560eab2a4a7477a7379 /webapp/components/search_results_item.jsx | |
parent | a820b1640bcea06d93fed790b891a853ea02e498 (diff) | |
download | chat-4a2fbcaf983e3180e00bb846f4ed65a2670b9251.tar.gz chat-4a2fbcaf983e3180e00bb846f4ed65a2670b9251.tar.bz2 chat-4a2fbcaf983e3180e00bb846f4ed65a2670b9251.zip |
Add flagging functionality to search results (#3803)
Diffstat (limited to 'webapp/components/search_results_item.jsx')
-rw-r--r-- | webapp/components/search_results_item.jsx | 57 |
1 files changed, 36 insertions, 21 deletions
diff --git a/webapp/components/search_results_item.jsx b/webapp/components/search_results_item.jsx index 65abc516e..ada5e0ea6 100644 --- a/webapp/components/search_results_item.jsx +++ b/webapp/components/search_results_item.jsx @@ -9,7 +9,7 @@ import UserStore from 'stores/user_store.jsx'; import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; import * as GlobalActions from 'actions/global_actions.jsx'; -import {unflagPost, getFlaggedPosts} from 'actions/post_actions.jsx'; +import {flagPost, unflagPost} from 'actions/post_actions.jsx'; import * as TextFormatting from 'utils/text_formatting.jsx'; import * as Utils from 'utils/utils.jsx'; @@ -30,6 +30,7 @@ export default class SearchResultsItem extends React.Component { this.handleFocusRHSClick = this.handleFocusRHSClick.bind(this); this.shrinkSidebar = this.shrinkSidebar.bind(this); this.unflagPost = this.unflagPost.bind(this); + this.flagPost = this.flagPost.bind(this); } hideSidebar() { @@ -47,11 +48,14 @@ export default class SearchResultsItem extends React.Component { GlobalActions.emitPostFocusRightHandSideFromSearch(this.props.post, this.props.isMentionSearch); } + flagPost(e) { + e.preventDefault(); + flagPost(this.props.post.id); + } + unflagPost(e) { e.preventDefault(); - unflagPost(this.props.post.id, - () => getFlaggedPosts() - ); + unflagPost(this.props.post.id); } render() { @@ -110,6 +114,7 @@ export default class SearchResultsItem extends React.Component { } let flag; + let flagFunc; let flagVisible = ''; let flagTooltip = ( <Tooltip id='flagTooltip'> @@ -129,24 +134,21 @@ export default class SearchResultsItem extends React.Component { /> </Tooltip> ); + flagFunc = this.unflagPost; flag = ( - <OverlayTrigger - delayShow={Constants.OVERLAY_TIME_DELAY} - placement='top' - overlay={flagTooltip} - > - <a - href='#' - className={'flag-icon__container ' + flagVisible} - onClick={this.unflagPost} - > - <span - className='icon' - dangerouslySetInnerHTML={{__html: flagIcon}} - /> - </a> - </OverlayTrigger> + <span + className='icon' + dangerouslySetInnerHTML={{__html: flagIcon}} + /> ); + } else { + flag = ( + <span + className='icon' + dangerouslySetInnerHTML={{__html: flagIcon}} + /> + ); + flagFunc = this.flagPost; } return ( @@ -187,7 +189,19 @@ export default class SearchResultsItem extends React.Component { minute='2-digit' /> </time> - {flag} + <OverlayTrigger + delayShow={Constants.OVERLAY_TIME_DELAY} + placement='top' + overlay={flagTooltip} + > + <a + href='#' + className={'flag-icon__container ' + flagVisible} + onClick={flagFunc} + > + {flag} + </a> + </OverlayTrigger> </li> <li className='col__controls'> <a @@ -256,6 +270,7 @@ SearchResultsItem.propTypes = { channel: React.PropTypes.object, compactDisplay: React.PropTypes.bool, isMentionSearch: React.PropTypes.bool, + isFlaggedSearch: React.PropTypes.bool, term: React.PropTypes.string, useMilitaryTime: React.PropTypes.bool.isRequired, shrink: React.PropTypes.function, |