@@ -2,9 +2,9 @@ import React, { useCallback } from 'react';
22import type { UserConfigurablePreferences } from 'compass-preferences-model' ;
33import {
44 getSettingDescription ,
5- getSettingSelectableValues ,
65 featureFlags ,
76} from 'compass-preferences-model/provider' ;
7+ import { SORT_ORDER_VALUES } from 'compass-preferences-model/provider' ;
88import { settingStateLabels } from './state-labels' ;
99import {
1010 Checkbox ,
@@ -158,20 +158,18 @@ function NumericSetting<PreferenceName extends NumericPreferences>({
158158 ) ;
159159}
160160
161- function DropdownSetting < PreferenceName extends StringPreferences > ( {
161+ function DefaultSortOrderSetting < PreferenceName extends 'defaultSortOrder' > ( {
162162 name,
163163 onChange,
164- selectableValues,
165164 value,
166165 disabled,
167166} : {
168167 name : PreferenceName ;
169168 onChange : HandleChange < PreferenceName > ;
170- selectableValues : ReadonlyArray < { label : string ; value : string } > ;
171169 value : string | undefined ;
172170 disabled : boolean ;
173171} ) {
174- selectableValues = JSON . parse ( JSON . stringify ( selectableValues ) ) ;
172+ const optionDescriptions = getSettingDescription ( name ) . description . options ;
175173 const onChangeEvent = useCallback (
176174 ( event : React . ChangeEvent < HTMLSelectElement > ) => {
177175 onChange (
@@ -195,9 +193,9 @@ function DropdownSetting<PreferenceName extends StringPreferences>({
195193 onChange = { onChangeEvent }
196194 disabled = { disabled }
197195 >
198- { selectableValues . map ( ( { label , value } , i ) => (
199- < option key = { i } value = { value } >
200- { label }
196+ { SORT_ORDER_VALUES . map ( ( option , i ) => (
197+ < option key = { i } value = { option } >
198+ { ( optionDescriptions && optionDescriptions [ option ] ) || value }
201199 </ option >
202200 ) ) }
203201 </ select >
@@ -255,7 +253,6 @@ type AnySetting = {
255253 name : string ;
256254 type : unknown ;
257255 value ?: unknown ;
258- selectableValues ?: ReadonlyArray < { label : string ; value : string } > ;
259256 onChange ( field : string , value : unknown ) : void ;
260257} ;
261258
@@ -301,7 +298,7 @@ function SettingsInput({
301298
302299 let input = null ;
303300
304- const { name, type, onChange, value, selectableValues } = props ;
301+ const { name, type, onChange, value } = props ;
305302
306303 if ( type === 'boolean' ) {
307304 input = (
@@ -312,11 +309,10 @@ function SettingsInput({
312309 disabled = { ! ! disabled }
313310 />
314311 ) ;
315- } else if ( type === 'string' && selectableValues ) {
312+ } else if ( type === 'string' && name === 'defaultSortOrder' ) {
316313 input = (
317- < DropdownSetting
314+ < DefaultSortOrderSetting
318315 name = { name }
319- selectableValues = { selectableValues }
320316 onChange = { onChange }
321317 value = { value as string }
322318 disabled = { ! ! disabled }
@@ -364,7 +360,6 @@ const ConnectedSettingsInput = connect(
364360
365361 return {
366362 value : settings [ name ] ,
367- selectableValues : getSettingSelectableValues ( name ) . selectableValues ,
368363 type : type ,
369364 disabled : ! ! preferenceStates [ name ] ,
370365 stateLabel : settingStateLabels [ preferenceStates [ name ] ?? '' ] ,
0 commit comments