@@ -11,6 +11,7 @@ export default class AppSearchDriver {
1111 results : [ ] , 
1212 size : 0 , 
1313 searchTerm : "" , 
14+  sort : { } , 
1415 totalResults : 0 
1516 } ; 
1617
@@ -42,28 +43,39 @@ export default class AppSearchDriver {
4243 } 
4344
4445 addFilter  =  ( name ,  value )  =>  { 
45-  const  {  filters,  searchTerm }  =  this . state ; 
46-  this . updateSearchResults ( searchTerm ,  1 ,  [ ...filters ,  {  [ name ] : value  } ] ) ; 
46+  const  {  filters,  searchTerm,  sort }  =  this . state ; 
47+  this . updateSearchResults ( 
48+  searchTerm , 
49+  1 , 
50+  [ ...filters ,  {  [ name ] : value  } ] , 
51+  sort 
52+  ) ; 
4753 } ; 
4854
4955 removeFilter  =  ( name ,  value )  =>  { 
50-  const  {  filters,  searchTerm }  =  this . state ; 
56+  const  {  filters,  searchTerm,  sort  }  =  this . state ; 
5157 const  updatedFilters  =  filters . filter ( filter  =>  ! ( filter [ name ]  ===  value ) ) ; 
52-  this . updateSearchResults ( searchTerm ,  1 ,  updatedFilters ) ; 
58+  this . updateSearchResults ( searchTerm ,  1 ,  updatedFilters ,   sort ) ; 
5359 } ; 
5460
5561 setSearchTerm  =  searchTerm  =>  { 
56-  this . updateSearchResults ( searchTerm ,  1 ,  [ ] ) ; 
62+  const  {  sort }  =  this . state ; 
63+  this . updateSearchResults ( searchTerm ,  1 ,  [ ] ,  sort ) ; 
5764 } ; 
5865
59-  updatePage  =  current  =>  { 
66+  setSort  =  sort  =>  { 
6067 const  {  filters,  searchTerm }  =  this . state ; 
68+  this . updateSearchResults ( searchTerm ,  1 ,  filters ,  sort ) ; 
69+  } ; 
6170
62-  this . updateSearchResults ( searchTerm ,  current ,  filters ) ; 
71+  updatePage  =  current  =>  { 
72+  const  {  filters,  searchTerm,  sort }  =  this . state ; 
73+ 
74+  this . updateSearchResults ( searchTerm ,  current ,  filters ,  sort ) ; 
6375 } ; 
6476
65-  updateSearchResults  =  ( searchTerm ,  current ,  filters )  =>  { 
66-  let  searchOptions  =  { 
77+  updateSearchResults  =  ( searchTerm ,  current ,  filters ,   sort )  =>  { 
78+  const  searchOptions  =  { 
6779 ...this . searchOptions , 
6880 page : { 
6981 size : 10 , 
@@ -74,6 +86,10 @@ export default class AppSearchDriver {
7486 } 
7587 } ; 
7688
89+  if  ( Object . keys ( sort ) . length  >  0 )  { 
90+  searchOptions . sort  =  sort ; 
91+  } 
92+ 
7793 return  this . client . search ( searchTerm ,  searchOptions ) . then ( resultList  =>  { 
7894 this . setState ( { 
7995 current : resultList . info . meta . page . current , 
@@ -82,6 +98,7 @@ export default class AppSearchDriver {
8298 results : resultList . results , 
8399 size : resultList . info . meta . page . size , 
84100 searchTerm : searchTerm , 
101+  sort : sort , 
85102 totalResults : resultList . info . meta . page . total_results 
86103 } ) ; 
87104 } ) ; 
0 commit comments