Skip to content

Commit 08556a8

Browse files
authored
Merge pull request #1044 from ShallowRed/develop
fix: 🐛 Permet l'utilisation d'une configuration d'icône dans le composant DsfrTag
2 parents 5535e4f + a4a4f3e commit 08556a8

File tree

3 files changed

+20
-15
lines changed

3 files changed

+20
-15
lines changed

src/components/DsfrTag/DsfrTag.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,18 @@ Il se compose des éléments suivants :
2626

2727
## 🛠️ Props
2828

29-
| Nom | Type | Défaut | Obligatoire | Description |
30-
|-----------|-----------|-----------|-------------|----------------------------------------------------------|
31-
| `label` | `string` | `undefined` | | Le texte affiché sur l'étiquette. |
32-
| `link` | `string` | `undefined` | | URL pour un lien externe. Détermine aussi le type de balise (a ou RouterLink). |
33-
| `tagName` | `string` | `'p'` | | Nom de la balise utilisée pour l'étiquette (devrait être `'p'` ou `'button'`). |
34-
| `icon` | `string` | `undefined` | | Nom de l'icône ([`@iconify/vue`](https://iconify.design/docs/icon-components/vue/)) à afficher sur l'étiquette. |
35-
| `disabled` | `boolean` | `undefined` | | Désactive l'étiquette si elle est un bouton. |
36-
| `small` | `boolean` | `undefined` | | Réduit la taille de l'étiquette. |
37-
| `iconOnly` | `boolean` | `undefined` | | Affiche uniquement l'icône, sans texte. |
38-
| `selectable` | `boolean` | `false` | Rend le tag sélectionnable. |
39-
| `selected` | `boolean` (si selectable) | `false` | Indique si le tag est sélectionné. |
40-
| `value` | `T` (si selectable) | `undefined` | Valeur associée au tag (utile dans une liste de tags sélectionnables). |
29+
| Nom | Type | Défaut | Obligatoire | Description |
30+
|--------------|---------------------------|-------------|-------------|----------------------------------------------------------|
31+
| `label` | `string` | `undefined` | | Le texte affiché sur l'étiquette. |
32+
| `link` | `string` | `undefined` | | URL pour un lien externe. Détermine aussi le type de balise (a ou RouterLink). |
33+
| `tagName` | `string` | `'p'` | | Nom de la balise utilisée pour l'étiquette (devrait être `'p'` ou `'button'`). |
34+
| `icon` | `string \| InstanceType<typeof VIcon>['$props']` | `undefined` | | Icône à afficher dans le tag Peut être un nom ou une configuration d'icône. |
35+
| `disabled` | `boolean` | `undefined` | | Désactive l'étiquette si elle est un bouton. |
36+
| `small` | `boolean` | `undefined` | | Réduit la taille de l'étiquette. |
37+
| `iconOnly` | `boolean` | `undefined` | | Affiche uniquement l'icône, sans texte. |
38+
| `selectable` | `boolean` | `false` | | Rend le tag sélectionnable. |
39+
| `selected` | `boolean` (si selectable) | `false` | | Indique si le tag est sélectionné. |
40+
| `value` | `T` (si selectable) | `undefined` | | Valeur associée au tag (utile dans une liste de tags sélectionnables). |
4141

4242
## 📡 Évenements
4343

src/components/DsfrTag/DsfrTag.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@ const linkProps = computed(() => {
2828
})
2929
3030
const dsfrIcon = computed(() => typeof props.icon === 'string' && props.icon.startsWith('fr-icon-'))
31-
const defaultScale = props.small ? 0.65 : 0.9
32-
const iconProps = computed(() => dsfrIcon.value ? undefined : typeof props.icon === 'string' ? { name: props.icon, scale: defaultScale } : { scale: defaultScale, ...(props.icon ?? {}) })
31+
const defaultScale = computed(() => props.small ? 0.65 : 0.9)
32+
const iconProps = computed(() => typeof props.icon === 'string'
33+
? { scale: defaultScale.value, name: props.icon }
34+
: { scale: defaultScale.value, ...props.icon },
35+
)
3336
</script>
3437

3538
<template>

src/components/DsfrTag/DsfrTags.types.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import type VIcon from '../VIcon/VIcon.vue'
2+
13
export type DsfrTagProps<T = string> = {
24
label?: string
35
link?: string
46
tagName?: string
5-
icon?: string
7+
icon?: string | InstanceType<typeof VIcon>['$props']
68
disabled?: boolean
79
small?: boolean
810
iconOnly?: boolean

0 commit comments

Comments
 (0)