Skip to content

Commit 381377b

Browse files
committed
refactor(DsfrCard): ♻️ utilise defineSlots et corrige optional chaining
- Améliorer la documentation des slots avec JSDoc - Corriger l'utilisation non sécurisée de l'optional chaining dans goToTargetLink - Ajout de defineSlots avec JSDoc pour start-details et end-details - Refactorisation de goToTargetLink pour éviter les erreurs avec optional chaining - Ajout du contrôle select pour titleTag avec options h1-h6 dans les stories
1 parent a580e52 commit 381377b

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/components/DsfrCard/DsfrCard.vue

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@ const props = withDefaults(defineProps<DsfrCardProps>(), {
2727
imgRatio: 'md',
2828
})
2929
30+
/**
31+
* Slots disponibles pour DsfrCard
32+
*/
33+
defineSlots<{
34+
/**
35+
* Slot pour ajouter du contenu au début des détails (ex: tags, badges)
36+
*/
37+
'start-details': () => any
38+
/**
39+
* Slot pour ajouter du contenu à la fin des détails
40+
*/
41+
'end-details': () => any
42+
}>()
43+
3044
const sm = computed(() => {
3145
return ['sm', 'small'].includes(props.size)
3246
})
@@ -46,7 +60,8 @@ const externalLink = computed(() => {
4660
4761
const titleElt = ref<HTMLElement | null>(null)
4862
const goToTargetLink = () => {
49-
(titleElt.value?.querySelector('.fr-card__link') as HTMLDivElement).click()
63+
const link = titleElt.value?.querySelector('.fr-card__link') as HTMLDivElement | null
64+
link?.click()
5065
}
5166
defineExpose({ goToTargetLink })
5267
</script>

0 commit comments

Comments
 (0)