@@ -165,20 +165,29 @@ TranslationLabel.displayName = 'Label';
165
165
const Trigger = React . forwardRef < HTMLButtonElement > (
166
166
(
167
167
{
168
- ariaLabelTrigger,
169
168
classNamesTrigger,
170
169
hideTriggerText,
170
+ locales,
171
171
selectedLocale,
172
172
small,
173
173
spritemap,
174
+ triggerMessage,
174
175
...otherProps
175
176
} : Record < string , any > ,
176
177
ref
177
178
) => {
179
+ const selectedItem =
180
+ selectedLocale ||
181
+ locales . find (
182
+ ( locale : Item ) => locale . label === otherProps [ 'children' ]
183
+ ) ;
184
+
178
185
return (
179
186
< button
180
187
{ ...otherProps }
181
- aria-label = { ariaLabelTrigger }
188
+ aria-label = { sub ( triggerMessage , [
189
+ selectedItem ?. displayName || selectedItem ?. label ,
190
+ ] ) }
182
191
className = { classNames (
183
192
classNamesTrigger ,
184
193
'form-control form-control-select form-control-select-secondary' ,
@@ -192,11 +201,11 @@ const Trigger = React.forwardRef<HTMLButtonElement>(
192
201
< span className = "inline-item-before" >
193
202
< ClayIcon
194
203
spritemap = { spritemap }
195
- symbol = { selectedLocale . symbol }
204
+ symbol = { selectedItem . symbol }
196
205
/>
197
206
</ span >
198
207
199
- { ! hideTriggerText ? selectedLocale . label : null }
208
+ { ! hideTriggerText ? selectedItem . label : null }
200
209
</ button >
201
210
) ;
202
211
}
@@ -229,27 +238,26 @@ const ClayLanguagePicker = ({
229
238
} : Props ) => {
230
239
const defaultLanguage = locales [ 0 ] ;
231
240
const hasTranslations = Object . keys ( translations ) . length ;
232
- const selectedLocale = locales . find ( ( { id} ) => id === selectedLocaleId ) ! ;
241
+ const selectedLocale = locales . find ( ( { id} ) => id === selectedLocaleId ) ;
233
242
234
243
return (
235
244
< Picker
236
245
active = { active }
237
- ariaLabelTrigger = { sub ( messages . trigger , [
238
- selectedLocale . displayName || selectedLocale . label ,
239
- ] ) }
240
246
as = { Trigger }
241
247
classNamesTrigger = { classNamesTrigger }
242
248
defaultActive = { defaultActive }
243
249
defaultSelectedKey = { defaultSelectedLocaleId || locales [ 0 ] ! . id }
244
250
hideTriggerText = { hideTriggerText }
245
251
id = { id }
246
252
items = { locales }
253
+ locales = { locales }
247
254
onActiveChange = { onActiveChange }
248
255
onSelectionChange = { onSelectedLocaleChange }
249
256
selectedKey = { selectedLocaleId }
250
257
selectedLocale = { selectedLocale }
251
258
small = { small }
252
259
spritemap = { spritemap }
260
+ triggerMessage = { messages . trigger }
253
261
>
254
262
{ ( locale ) => {
255
263
return (
0 commit comments