@@ -219,12 +219,15 @@ export const ChartSwitch = memo(function ChartSwitch(props: Props) {
219219 // reorganize visualizations in groups
220220 const grouped : Record <
221221 string ,
222- Array <
223- VisualizationType & {
224- visualizationId : string ;
225- selection : VisualizationSelection ;
226- }
227- >
222+ {
223+ priority : number ;
224+ visualizations : Array <
225+ VisualizationType & {
226+ visualizationId : string ;
227+ selection : VisualizationSelection ;
228+ }
229+ > ;
230+ }
228231 > = { } ;
229232 // Will need it later on to quickly pick up the metadata from it
230233 const lookup : Record <
@@ -240,23 +243,29 @@ export const ChartSwitch = memo(function ChartSwitch(props: Props) {
240243 visualizationType . label . toLowerCase ( ) . includes ( lowercasedSearchTerm ) ||
241244 visualizationType . fullLabel ?. toLowerCase ( ) . includes ( lowercasedSearchTerm ) ;
242245 if ( isSearchMatch ) {
243- grouped [ visualizationType . groupLabel ] = grouped [ visualizationType . groupLabel ] || [ ] ;
246+ grouped [ visualizationType . groupLabel ] = grouped [ visualizationType . groupLabel ] || {
247+ priority : 0 ,
248+ visualizations : [ ] ,
249+ } ;
244250 const visualizationEntry = {
245251 ...visualizationType ,
246252 visualizationId,
247253 selection : getSelection ( visualizationId , visualizationType . id ) ,
248254 } ;
249- grouped [ visualizationType . groupLabel ] . push ( visualizationEntry ) ;
255+ grouped [ visualizationType . groupLabel ] . priority += visualizationType . sortPriority || 0 ;
256+ grouped [ visualizationType . groupLabel ] . visualizations . push ( visualizationEntry ) ;
250257 lookup [ `${ visualizationId } :${ visualizationType . id } ` ] = visualizationEntry ;
251258 }
252259 }
253260 } ) ;
254261
255262 return {
256263 visualizationTypes : Object . keys ( grouped )
257- . sort ( )
264+ . sort ( ( groupA , groupB ) => {
265+ return grouped [ groupB ] . priority - grouped [ groupA ] . priority ;
266+ } )
258267 . flatMap ( ( group ) : SelectableEntry [ ] => {
259- const visualizations = grouped [ group ] ;
268+ const { visualizations } = grouped [ group ] ;
260269 if ( visualizations . length === 0 ) {
261270 return [ ] ;
262271 }
0 commit comments