span({ className: "pipe-divider" }), this.renderCaseSensitiveButton() ); } /** * Render a clear button to clear search results. */ renderClearButton() { return button({ className: "devtools-button devtools-clear-icon ws-frames-list-clear-button", title: L10N.getStr("netmonitor.search.toolbar.clear"), onClick: () => { this.props.clearSearchResults(); }, }); } /** * Render the case sensitive search modifier button */ renderCaseSensitiveButton() { const { caseSensitive, toggleCaseSensitiveSearch } = this.props; const active = caseSensitive ? "checked" : ""; return button({ id: "devtools-network-search-caseSensitive", className: `devtools-button ${active}`, title: L10N.getStr("netmonitor.search.toolbar.caseSensitive"), onClick: toggleCaseSensitiveSearch, }); } /** * Render Search box. */ renderFilterBox() { const { addSearchQuery, clearSearchResultAndCancel, connector, query } = this.props; return SearchBox({ keyShortcut: "CmdOrCtrl+Shift+F", placeholder: L10N.getStr("netmonitor.search.toolbar.inputPlaceholder"), type: "search", delay: FILTER_SEARCH_DELAY, ref: this.props.searchboxRef, initialValue: query, onClearButtonClick: () => clearSearchResultAndCancel(), onChange: newQuery => addSearchQuery(newQuery), onKeyDown: event => this.onKeyDown(event, connector), }); } render() { return div( { id: "netmonitor-toolbar-container", className: "devtools-toolbar devtools-input-toolbar", }, this.renderFilterBox(), this.renderModifiers() ); } } module.exports = connect( state => ({ caseSensitive: state.search.caseSensitive, query: state.search.query, }), dispatch => ({ closeSearch: () => dispatch(Actions.closeSearch()), openSearch: () => dispatch(Actions.openSearch()), clearSearchResultAndCancel: () => dispatch(Actions.clearSearchResultAndCancel()), toggleCaseSensitiveSearch: () => dispatch(Actions.toggleCaseSensitiveSearch()), search: (connector, query) => dispatch(Actions.search(connector, query)), addSearchQuery: query => dispatch(Actions.addSearchQuery(query)), }) )(Toolbar); PK