Skip to content

Commit 6455d7f

Browse files
authored
Merge pull request #582 from dnum-mi/feat/allow-custom-text-in-dsfr-select
feat(DsfrSelect): ✨ permet personnalisation de texte
2 parents 4258df4 + 8f64491 commit 6455d7f

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

src/components/DsfrSelect/DsfrSelect.stories.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ export default {
3131
control: 'text',
3232
description: 'Message à afficher en situation de succès, sa présence change la couleur de la police d’écriture',
3333
},
34+
defaultUnselectedText: {
35+
control: 'text',
36+
description: 'Texte de l’option sélectionnée par défaut si aucune option valide n’est sélectionnée',
37+
},
3438
errorMessage: {
3539
control: 'text',
3640
description: 'Message à afficher en cas d’erreur, sa présence change la couleur de la police d’écriture',
@@ -103,6 +107,56 @@ ListeDeroulante.args = {
103107
required: false,
104108
}
105109

110+
export const ListeDeroulanteEnAnglais = (args) => ({
111+
components: {
112+
DsfrSelect,
113+
},
114+
115+
data () {
116+
return {
117+
...args,
118+
}
119+
},
120+
121+
template: `
122+
<DsfrSelect
123+
:required="required"
124+
:label="label"
125+
:options="options"
126+
:description="description"
127+
:success-message="successMessage"
128+
:error-message="errorMessage"
129+
:disabled="disabled"
130+
:defaultUnselectedText="defaultUnselectedText"
131+
v-model="modelValue"
132+
/>
133+
`,
134+
135+
watch: {
136+
modelValue (newVal) {
137+
this.onChange(newVal)
138+
},
139+
},
140+
141+
})
142+
ListeDeroulanteEnAnglais.args = {
143+
options: [
144+
'Option 1',
145+
'Option 2',
146+
'Option 3',
147+
'Option 4',
148+
'Option 5',
149+
'Option 6',
150+
],
151+
label: 'Those are the options:',
152+
description: 'I am a description',
153+
successMessage: '',
154+
errorMessage: '',
155+
defaultUnselectedText: 'Please select an option',
156+
disabled: false,
157+
required: false,
158+
}
159+
106160
export const ListeDeroulanteRequise = (args) => ({
107161
components: {
108162
DsfrSelect,

src/components/DsfrSelect/DsfrSelect.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const props = withDefaults(defineProps<{
1616
options?:(string | number | { value: string | number, text: string, disabled: boolean })[]
1717
successMessage?: string
1818
errorMessage?: string
19+
defaultUnselectedText?: string
1920
}>(), {
2021
selectId: () => getRandomId('select'),
2122
modelValue: undefined,
@@ -24,6 +25,7 @@ const props = withDefaults(defineProps<{
2425
description: undefined,
2526
successMessage: '',
2627
errorMessage: '',
28+
defaultUnselectedText: 'Sélectionnez une option',
2729
})
2830
2931
defineEmits<{(e: 'update:modelValue', payload: string): void}>()
@@ -78,7 +80,7 @@ const messageType = computed(() => {
7880
disabled
7981
hidden
8082
>
81-
Sélectionnez une option
83+
{{ defaultUnselectedText }}
8284
</option>
8385

8486
<option

0 commit comments

Comments
 (0)