1
1
import page from '@automattic/calypso-router' ;
2
- import { CompactCard , SegmentedControl } from '@automattic/components' ;
2
+ import { CompactCard } from '@automattic/components' ;
3
+ import {
4
+ __experimentalToggleGroupControl as ToggleGroupControl ,
5
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption ,
6
+ } from '@wordpress/components' ;
3
7
import clsx from 'clsx' ;
4
8
import { localize } from 'i18n-calypso' ;
5
9
import { trim , flatMap } from 'lodash' ;
@@ -88,23 +92,27 @@ class SearchStream extends React.Component {
88
92
window . scrollTo ( 0 , 0 ) ;
89
93
} ;
90
94
91
- useRelevanceSort = ( ) => {
92
- const sort = 'relevance' ;
93
- recordAction ( 'search_page_clicked_relevance_sort' ) ;
94
- this . props . recordReaderTracksEvent ( 'calypso_reader_clicked_search_sort' , {
95
- query : this . props . query ,
96
- sort,
97
- } ) ;
98
- updateQueryArg ( { sort } ) ;
99
- } ;
95
+ onChangeSortPicker = ( sort ) => {
96
+ if ( typeof sort !== 'string' ) {
97
+ return ;
98
+ }
99
+
100
+ switch ( sort ) {
101
+ case 'date' :
102
+ recordAction ( 'search_page_clicked_date_sort' ) ;
103
+ break ;
104
+ case 'relevance' :
105
+ recordAction ( 'search_page_clicked_relevance_sort' ) ;
106
+ break ;
107
+ }
108
+
109
+ if ( recordReaderTracksEvent ) {
110
+ this . props . recordReaderTracksEvent ( 'calypso_reader_clicked_search_sort' , {
111
+ query : this . props . query ,
112
+ sort,
113
+ } ) ;
114
+ }
100
115
101
- useDateSort = ( ) => {
102
- const sort = 'date' ;
103
- recordAction ( 'search_page_clicked_date_sort' ) ;
104
- this . props . recordReaderTracksEvent ( 'calypso_reader_clicked_search_sort' , {
105
- query : this . props . query ,
106
- sort,
107
- } ) ;
108
116
updateQueryArg ( { sort } ) ;
109
117
} ;
110
118
@@ -121,7 +129,7 @@ class SearchStream extends React.Component {
121
129
const { query, translate, searchType, suggestions, isLoggedIn } = this . props ;
122
130
const sortOrder = this . props . sort ;
123
131
const wideDisplay = this . props . width > WIDE_DISPLAY_CUTOFF ;
124
- const segmentedControlClass = wideDisplay
132
+ const toggleGroupControlClasses = wideDisplay
125
133
? 'search-stream__sort-picker is-wide'
126
134
: 'search-stream__sort-picker' ;
127
135
// Hide posts and sites if the only result has no feed ID. This can happen when searching
@@ -191,17 +199,20 @@ class SearchStream extends React.Component {
191
199
</ CompactCard >
192
200
< SearchFollowButton query = { query } feeds = { this . state . feeds } />
193
201
{ query && (
194
- < SegmentedControl compact className = { segmentedControlClass } >
195
- < SegmentedControl . Item
196
- selected = { sortOrder !== 'date' }
197
- onClick = { this . useRelevanceSort }
202
+ < div className = { toggleGroupControlClasses } >
203
+ < ToggleGroupControl
204
+ hideLabelFromVision
205
+ isBlock
206
+ label = ""
207
+ value = { sortOrder }
208
+ onChange = { this . onChangeSortPicker }
209
+ __nextHasNoMarginBottom
210
+ __next40pxDefaultSize
198
211
>
199
- { TEXT_RELEVANCE_SORT }
200
- </ SegmentedControl . Item >
201
- < SegmentedControl . Item selected = { sortOrder === 'date' } onClick = { this . useDateSort } >
202
- { TEXT_DATE_SORT }
203
- </ SegmentedControl . Item >
204
- </ SegmentedControl >
212
+ < ToggleGroupControlOption label = { TEXT_RELEVANCE_SORT } value = "relevance" />
213
+ < ToggleGroupControlOption label = { TEXT_DATE_SORT } value = "date" />
214
+ </ ToggleGroupControl >
215
+ </ div >
205
216
) }
206
217
{ ! query && (
207
218
< BlankSuggestions
0 commit comments