Skip to content

Commit 48d99d2

Browse files
committed
refactor(transcription): ♻️ modernise DsfrTranscription avec defineSlots et story CSF3
## Pourquoi les changements ont été faits : - Moderniser le composant DsfrTranscription pour utiliser les dernières conventions Vue 3 - Améliorer la documentation des slots disponibles pour les développeurs - Convertir la story Storybook au format CSF3 moderne pour une meilleure maintenabilité ## Quelles modifications ont été apportées : - Ajout de defineSlots avec documentation du slot par défaut - Conversion de la story Transcription au format CSF3 avec Meta/StoryObj - Remplacement de data() par setup() dans la story - Ajout du commentaire de documentation du DSFR dans la story - Conservation de toute la logique de modal et de transcription existante
1 parent c375c29 commit 48d99d2

File tree

2 files changed

+38
-17
lines changed

2 files changed

+38
-17
lines changed
Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import type { Meta, StoryObj } from '@storybook/vue3'
2+
13
import { setup } from '@storybook/vue3-vite'
24

35
import DsfrModal from '../DsfrModal/DsfrModal.vue'
@@ -10,10 +12,7 @@ setup((app) => {
1012
app.component('VIcon', VIcon)
1113
})
1214

13-
/**
14-
* [Voir quand l’utiliser sur la documentation du DSFR](https://www.systeme-de-design.gouv.fr/version-courante/fr/composants/transcription)
15-
*/
16-
export default {
15+
const meta = {
1716
component: DsfrTranscription,
1817
title: 'Composants/DsfrTranscription',
1918
argTypes: {
@@ -27,21 +26,35 @@ export default {
2726
description: 'Transcription du contenu de la vidéo',
2827
},
2928
},
30-
}
29+
} satisfies Meta<typeof DsfrTranscription>
3130

32-
export const Transcription = (args) => ({
33-
components: { DsfrTranscription, DsfrModal },
34-
data () {
35-
return args
36-
},
37-
template: `
31+
export default meta
32+
33+
type Story = StoryObj<typeof meta>
34+
35+
/**
36+
* [Voir quand l'utiliser sur la documentation du DSFR](https://www.systeme-de-design.gouv.fr/version-courante/fr/composants/transcription)
37+
*/
38+
39+
export const Transcription: Story = {
40+
render: (args) => ({
41+
components: { DsfrTranscription, DsfrModal },
42+
43+
setup () {
44+
return args
45+
},
46+
47+
template: `
3848
<DsfrTranscription
39-
:title="title"
40-
:content="content"
49+
:id
50+
:title
51+
:content
4152
/>
4253
`,
43-
})
44-
Transcription.args = {
45-
title: 'Chats hiver',
46-
content: 'Des chatons jouant dans la neige',
54+
}),
55+
args: {
56+
title: 'Chats hiver',
57+
content: 'Des chatons jouant dans la neige',
58+
id: '123',
59+
},
4760
}

src/components/DsfrTranscription/DsfrTranscription.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ import DsfrModal from '../DsfrModal/DsfrModal.vue'
99
1010
export type { DsfrTranscriptionProps }
1111
12+
defineSlots<{
13+
/**
14+
* Contenu de la transcription
15+
* @default content prop
16+
*/
17+
default?: () => any
18+
}>()
19+
1220
const props = withDefaults(defineProps<DsfrTranscriptionProps>(), {
1321
id: () => useRandomId('transcription'),
1422
title: 'Titre de la vidéo',

0 commit comments

Comments
 (0)