Skip to content

Commit 9cb6b34

Browse files
authored
Merge pull request #455 from ambroisemaupate/fix/fieldset
fix(DsfrFieldset): Missing `fr-fieldset__element` elements to wrap Fieldset hint and content
2 parents 72ed2ad + 775e2f7 commit 9cb6b34

File tree

3 files changed

+27
-14
lines changed

3 files changed

+27
-14
lines changed

src/components/DsfrFieldset/DsfrFieldset.spec.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,21 @@ describe('DsfrFieldset', () => {
2929
const hintByText = getByText(hint)
3030

3131
const hintEl = legendEl.nextElementSibling
32+
const hintInnerEl = hintEl.firstElementChild
33+
34+
const contentEl = hintEl.nextElementSibling
3235

3336
expect(fieldsetEl).not.toBeNull()
3437
expect(fieldsetEl).toHaveClass('fr-fieldset')
3538
expect(legendEl).toBe(legendByText)
36-
expect(fieldsetByText).toBe(fieldsetEl)
37-
expect(hintByText).toBe(hintEl)
39+
expect(fieldsetByText).toBe(contentEl)
40+
expect(hintByText).toBe(hintInnerEl)
3841
expect(legendEl).toHaveClass('fr-fieldset__legend')
3942
expect(legendEl).toHaveClass('test-legend-class')
4043
expect(legendEl).toHaveAttribute('id', 'legend-id')
41-
expect(hintEl).toHaveClass('fr-hint-text')
42-
expect(hintEl).toHaveClass('test-hint-class')
44+
expect(hintEl).toHaveClass('fr-fieldset__element')
45+
expect(hintInnerEl).toHaveClass('fr-hint-text')
46+
expect(hintInnerEl).toHaveClass('test-hint-class')
4347
})
4448

4549
it('should render a complex DsfrFieldset component', () => {
@@ -64,14 +68,18 @@ describe('DsfrFieldset', () => {
6468
const hintByText = getByText(hint)
6569

6670
const hintEl = legendEl.nextElementSibling
71+
const hintInnerEl = hintEl.firstElementChild
72+
73+
const contentEl = hintEl.nextElementSibling
6774

6875
expect(fieldsetEl).not.toBeNull()
6976
expect(fieldsetEl).toHaveClass('fr-fieldset')
7077
expect(legendEl).toBe(legendByText)
71-
expect(fieldsetByText).toBe(fieldsetEl)
72-
expect(hintByText).toBe(hintEl)
78+
expect(fieldsetByText).toBe(contentEl)
79+
expect(hintByText).toBe(hintInnerEl)
7380
expect(legendEl).toHaveClass('fr-fieldset__legend')
7481
expect(legendEl).toHaveAttribute('id', 'legend-id')
75-
expect(hintEl).toHaveClass('fr-hint-text')
82+
expect(hintEl).toHaveClass('fr-fieldset__element')
83+
expect(hintInnerEl).toHaveClass('fr-hint-text')
7684
})
7785
})

src/components/DsfrFieldset/DsfrFieldset.stories.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export const EnsemblePersonnaliseDeChamps = (args) => ({
9191
:hint-class="hintClass"
9292
>
9393
<template #legend>
94-
{{ legend }} avec <em>de l’italique</em>
94+
<h6>{{ legend }} avec <em>de l’italique</em> dans un titre</h6>
9595
</template>
9696
<template #hint>
9797
{{ hint }} avec <strong>du gras</strong>

src/components/DsfrFieldset/DsfrFieldset.vue

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,22 @@ export default defineComponent({
4141
<!-- @slot Slot pour le contenu du titre du `fieldset` (sera dans `<legend class="fr-fieldset__legend">`). Une props du même nom est utilisable pour du texte simple sans mise en forme. -->
4242
<slot name="legend" />
4343
</legend>
44-
<span
44+
<div
4545
v-if="hint || $slots.hint?.().length"
46-
class="fr-hint-text"
47-
:class="hintClass"
46+
class="fr-fieldset__element"
4847
>
48+
<span
49+
class="fr-hint-text"
50+
:class="hintClass"
51+
>
4952
{{ hint }}
50-
<!-- @slot Slot pour le contenu de l’indice (sera dans `<span class="fr-hint-text">` qui sera dans `</legend>`). Une **props du même nom est utilisable pour du texte simple** sans mise en forme. -->
53+
<!-- @slot Slot pour le contenu de l’indice (sera dans `<span class="fr-hint-text">` qui sera dans `</legend>`). Une **props du même nom est utilisable pour du texte simple** sans mise en forme. -->
5154
<slot name="hint" />
5255
</span>
53-
56+
</div>
5457
<!-- @slot Slot par défaut pour le contenu du fieldset (sera dans `<fieldset>`, après `</legend>`) -->
55-
<slot />
58+
<div class="fr-fieldset__element">
59+
<slot />
60+
</div>
5661
</fieldset>
5762
</template>

0 commit comments

Comments
 (0)