@@ -56,7 +56,7 @@ export class SearchResultItem extends Component {
5656 let { start, end, length, innerStart, innerEnd, line, lineNum} = result ;
5757 return (
5858 < div key = { `${ fileName } -${ resultSize } -${ lineNum } -${ start } ` } className = 'search-item-line' onClick = { ( ) => this . handleItemClick ( path , innerStart , innerEnd , lineNum ) } >
59- < span className = 'search-item-content' > { line . substring ( 0 , innerStart ) } < b > { line . substring ( innerStart , innerEnd ) } </ b > { line . substring ( innerEnd ) } </ span >
59+ { line && < span className = 'search-item-content' > { line . substring ( 0 , innerStart ) } < b > { line . substring ( innerStart , innerEnd ) } </ b > { line . substring ( innerEnd ) } </ span > }
6060 </ div >
6161 ) } )
6262 }
@@ -103,14 +103,18 @@ class SearchPanel extends Component {
103103 if ( state . ws . first ) {
104104 content = ''
105105 } else if ( ! state . searched . end ) {
106- content = 'Searching...'
106+ content = i18n `panel.left.searching`
107107 } else if ( state . searched . message !== '' ) {
108108 content = state . searched . message ;
109109 } else if ( state . searched . results . length != 0 ) {
110110 const pattern = state . searching . pattern ;
111- let count = 0 ;
111+ const files = state . searched . results . length
112+ let number = 0
113+ let count = 0
114+
112115 content = state . searched . results . map ( ( searchChunk ) => {
113116 count ++
117+ number += searchChunk . results . length
114118 return ( < SearchResultItem
115119 key = { `${ pattern } -${ count } ` }
116120 fileName = { searchChunk . fileName }
@@ -121,6 +125,7 @@ class SearchPanel extends Component {
121125 } )
122126 return (
123127 < div className = 'search-result-list' >
128+ < div > { i18n `panel.result.tip${ { files, number } } ` } </ div >
124129 { content }
125130 </ div >
126131 )
@@ -136,6 +141,11 @@ class SearchPanel extends Component {
136141 }
137142
138143 render ( ) {
144+ const searching = state . searching
145+ const caseSensitive = searching . get ( 'caseSensitive' )
146+ const word = searching . get ( 'word' )
147+ const isPattern = searching . get ( 'isPattern' )
148+
139149 return (
140150 < div className = 'search-panel' >
141151 < div className = 'search-panel-title' >
@@ -148,46 +158,44 @@ class SearchPanel extends Component {
148158 value = { state . keyword }
149159 onChange = { this . handleKeywordChange }
150160 onKeyDown = { this . onKeyDown }
151- placeholder = { i18n . get ( ' panel.left.find' ) }
161+ placeholder = { i18n . get ( ` panel.left.placeholder` ) }
152162 />
153163 </ div >
154- { /* <div className='search-checkbox'>
155- <input
156- title={i18n.get('panel.checkbox.case')}
157- label={i18n.get('panel.checkbox.case')}
158- className='search-control-case-sensitive'
159- onChange={this.caseSensitive}
160- type='checkbox'/>
161- <input title={i18n.get('panel.checkbox.word')}
162- label={i18n.get('panel.checkbox.word')}
163- className='search-control-word'
164- onChange={this.word}
165- type='checkbox'
166- disabled={state.searching.isPattern}/>
167- <input title={i18n.get('panel.checkbox.pattern')}
168- label={i18n.get('panel.checkbox.pattern')}
169- className='search-control-pattern'
170- onChange={this.pattern}
171- type='checkbox'/>
172- </div> */ }
164+ < div className = 'search-checkbox' >
165+ < span title = { i18n . get ( 'panel.checkbox.case' ) }
166+ onClick = { ( ) => this . caseSensitive ( caseSensitive ) }
167+ className = { caseSensitive ? 'active' : '' } > { 'Aa' } </ span >
168+ < span title = { i18n . get ( 'panel.checkbox.word' ) }
169+ onClick = { ( ) => this . word ( word ) }
170+ className = { word ? 'active' : '' } > { 'Al' } </ span >
171+ < span title = { i18n . get ( 'panel.checkbox.pattern' ) }
172+ onClick = { ( ) => this . pattern ( isPattern ) }
173+ className = { isPattern ? 'active' : '' } > { '.*' } </ span >
174+ </ div >
173175 </ div >
174176 { this . renderResult ( ) }
175177 </ div >
176178 )
177179 }
178180
179- caseSensitive = e => {
180- state . searching . caseSensitive = e . target . checked ;
181+ caseSensitive = caseSensitive => {
182+ state . searching . set ( ' caseSensitive' , ! caseSensitive )
181183 }
182184
183- word = e => {
184- state . searching . word = e . target . checked ;
185+ word = word => {
186+ state . searching . set ( 'word' , ! word )
187+ if ( ! word ) {
188+ state . searching . set ( 'isPattern' , false )
189+ }
185190 }
186191
187- pattern = e => {
188- state . searching . isPattern = e . target . checked ;
192+ pattern = isPattern => {
193+ state . searching . set ( 'isPattern' , ! isPattern )
194+ if ( ! isPattern ) {
195+ state . searching . set ( 'word' , false )
196+ }
189197 }
190198
191199}
192200
193- export default SearchPanel ;
201+ export default SearchPanel
0 commit comments