File tree Expand file tree Collapse file tree 5 files changed +55
-12
lines changed Expand file tree Collapse file tree 5 files changed +55
-12
lines changed Original file line number Diff line number Diff line change 11{
22 "name" : " @codegouvfr/react-dsfr" ,
3- "version" : " 0.75.3 " ,
3+ "version" : " 0.75.5 " ,
44 "description" : " French State Design System React integration library" ,
55 "repository" : {
66 "type" : " git" ,
Original file line number Diff line number Diff line change @@ -144,7 +144,7 @@ export const Header = memo(
144144
145145 const { Link } = getLink ( ) ;
146146
147- const quickAccessNode = (
147+ const getQuickAccessNode = ( suffix : string | null = null ) => (
148148 < ul className = { fr . cx ( "fr-btns-group" ) } >
149149 { quickAccessItems . map ( ( quickAccessItem , i ) => (
150150 < li key = { i } >
@@ -157,7 +157,7 @@ export const Header = memo(
157157 < HeaderQuickAccessItem
158158 id = { `${ id } -quick-access-item-${ generateValidHtmlId ( {
159159 "fallback" : "" ,
160- "text" : quickAccessItem . text
160+ "text" : ` ${ quickAccessItem . text } ${ suffix ? `- ${ suffix } ` : "" } `
161161 } ) } -${ i } `}
162162 quickAccessItem = { quickAccessItem }
163163 />
@@ -312,7 +312,7 @@ export const Header = memo(
312312 classes . toolsLinks
313313 ) }
314314 >
315- { quickAccessNode }
315+ { getQuickAccessNode ( ) }
316316 </ div >
317317 ) }
318318
@@ -401,7 +401,7 @@ export const Header = memo(
401401 classes . menuLinks
402402 ) }
403403 >
404- { quickAccessNode }
404+ { getQuickAccessNode ( "mobile" ) }
405405 </ div >
406406 { navigation !== undefined &&
407407 ( navigation instanceof Array ? (
Original file line number Diff line number Diff line change @@ -74,7 +74,7 @@ export const Input = memo(
7474 hintText,
7575 hideLabel,
7676 disabled = false ,
77- iconId : iconId_props ,
77+ iconId,
7878 classes = { } ,
7979 style,
8080 state = "default" ,
@@ -161,10 +161,6 @@ export const Input = memo(
161161 />
162162 ) ;
163163
164- const iconId =
165- iconId_props ??
166- ( nativeInputProps ?. type === "date" ? "ri-calendar-line" : undefined ) ;
167-
168164 return iconId === undefined ? (
169165 nativeInputOrTextArea
170166 ) : (
Original file line number Diff line number Diff line change @@ -34,11 +34,24 @@ export type SelectProps<Options extends SelectProps.Option[]> = {
3434 value ?: Options [ number ] [ "value" ] ;
3535 onChange ?: (
3636 e : Omit < ChangeEvent < HTMLSelectElement > , "target" | "currentTarget" > & {
37- target : Omit < ChangeEvent < HTMLSelectElement > , "value" > & {
37+ target : Omit < EventTarget & HTMLSelectElement , "value" | "selectedOptions "> & {
3838 value : Options [ number ] [ "value" ] ;
39+ selectedOptions : HTMLCollectionOf <
40+ Omit < HTMLOptionElement , "value" > & {
41+ value : Options [ number ] [ "value" ] ;
42+ }
43+ > ;
3944 } ;
40- currentTarget : Omit < ChangeEvent < HTMLSelectElement > , "value" > & {
45+ currentTarget : Omit <
46+ EventTarget & HTMLSelectElement ,
47+ "value" | "selectedOptions"
48+ > & {
4149 value : Options [ number ] [ "value" ] ;
50+ selectedOptions : HTMLCollectionOf <
51+ Omit < HTMLOptionElement , "value" > & {
52+ value : Options [ number ] [ "value" ] ;
53+ }
54+ > ;
4255 } ;
4356 }
4457 ) => void ;
Original file line number Diff line number Diff line change @@ -262,3 +262,37 @@ import { assert, type Equals } from "tsafe";
262262 } }
263263 /> ;
264264}
265+
266+ {
267+ const dogOrCatOptions = [
268+ {
269+ value : "dog" ,
270+ label : "Dog"
271+ } ,
272+ {
273+ value : "cat" ,
274+ label : "Cat"
275+ }
276+ ] as const ;
277+
278+ type DogOrCat = typeof dogOrCatOptions [ number ] [ "value" ] ;
279+ type SelectTarget = Omit < EventTarget & HTMLSelectElement , "value" | "selectedOptions" > & {
280+ value : DogOrCat ;
281+ selectedOptions : HTMLCollectionOf < Omit < HTMLOptionElement , "value" > & { value : DogOrCat } > ;
282+ } ;
283+ < Select
284+ label = "Dog or cat person?"
285+ options = { [ ...dogOrCatOptions ] }
286+ placeholder = "Select an option"
287+ nativeSelectProps = { {
288+ "onChange" : event => {
289+ assert < Equals < typeof event [ "currentTarget" ] , SelectTarget > > ( ) ;
290+ assert < Equals < typeof event [ "target" ] , SelectTarget > > ( ) ;
291+ const selectedValues = Array . from ( event . target . selectedOptions ) . map (
292+ option => option . value
293+ ) ;
294+ assert < Equals < typeof selectedValues , DogOrCat [ ] > > ;
295+ }
296+ } }
297+ /> ;
298+ }
You can’t perform that action at this time.
0 commit comments