From 12896bd23eeba79884245c1c29fdc568cf21a7fa Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 14 Mar 2016 08:50:46 -0400 Subject: Converting to Webpack. Stage 1. --- .../suggestion/search_suggestion_list.jsx | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 webapp/components/suggestion/search_suggestion_list.jsx (limited to 'webapp/components/suggestion/search_suggestion_list.jsx') diff --git a/webapp/components/suggestion/search_suggestion_list.jsx b/webapp/components/suggestion/search_suggestion_list.jsx new file mode 100644 index 000000000..b15cc4243 --- /dev/null +++ b/webapp/components/suggestion/search_suggestion_list.jsx @@ -0,0 +1,95 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import $ from 'jquery'; +import ReactDOM from 'react-dom'; +import Constants from 'utils/constants.jsx'; +import SuggestionList from './suggestion_list.jsx'; + +import {FormattedMessage} from 'react-intl'; + +import {Popover} from 'react-bootstrap'; + +export default class SearchSuggestionList extends SuggestionList { + getContent() { + return $(ReactDOM.findDOMNode(this.refs.popover)).find('.popover-content'); + } + + renderChannelDivider(type) { + let text; + if (type === Constants.OPEN_CHANNEL) { + text = ( + + ); + } else { + text = ( + + ); + } + + return ( +
+ {text} +
+ ); + } + + render() { + if (this.state.items.length === 0) { + return null; + } + + const items = []; + for (let i = 0; i < this.state.items.length; i++) { + const item = this.state.items[i]; + const term = this.state.terms[i]; + const isSelection = term === this.state.selection; + + // ReactComponent names need to be upper case when used in JSX + const Component = this.state.components[i]; + + // temporary hack to add dividers between public and private channels in the search suggestion list + if (i === 0 || item.type !== this.state.items[i - 1].type) { + if (item.type === Constants.OPEN_CHANNEL) { + items.push(this.renderChannelDivider(Constants.OPEN_CHANNEL)); + } else if (item.type === Constants.PRIVATE_CHANNEL) { + items.push(this.renderChannelDivider(Constants.PRIVATE_CHANNEL)); + } + } + + items.push( + + ); + } + + return ( + + {items} + + ); + } +} + +SearchSuggestionList.propTypes = { + ...SuggestionList.propTypes +}; -- cgit v1.2.3-1-g7c22