Skip to content

Commit 08c3e69

Browse files
authored
Merge pull request #919 from dnum-mi/docs/improve-migrations-doc
docs: 📝 améliore la documentation de migration vers v6
2 parents 6339b80 + 4819e65 commit 08c3e69

File tree

3 files changed

+94
-8
lines changed

3 files changed

+94
-8
lines changed

.vscode/extensions.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@
2626
// https://github.com/DavidAnson/vscode-markdownlint
2727
"DavidAnson.vscode-markdownlint",
2828

29-
// Test `.unit.js` files on save with Jest
30-
// https://github.com/jest-community/vscode-jest
31-
"Orta.vscode-jest",
32-
3329
// npm support for VS Code
3430
// https://github.com/Microsoft/vscode-npm-scripts
3531
"eg2.vscode-npm-script",

docs/guide/migrations.md

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,104 @@ Pour rendre la migration la plus douce possible un composant `VIcon` a été ajo
2727

2828
#### Implication et changements à faire sur vos projets
2929

30+
##### Vue + vite
31+
3032
Il vous suffira donc dans vos projets d’importer VIcon depuis `@gouvminint/vue-dsfr` dans tous les fichiers où vous utilisez VIcon de OhVueIcons.
3133

32-
Il faudra peut-être dans certains cas renommer les icônes car la syntaxe attendue par `@iconify/vue` est `nom-de-collection:nom-d-icone` alors que `oh-vue-icon` attendait simplement `nom-de-collection-nom-d-icone`.
34+
Il faudra enlever les références à `oh-vue-icons`, par exemple dans `main.ts` :
35+
36+
::: code-group
37+
38+
```ts [main.ts]
39+
import '@gouvfr/dsfr/dist/core/core.main.min.css'
40+
import '@gouvfr/dsfr/dist/component/component.main.min.css'
41+
import '@gouvfr/dsfr/dist/utility/utility.main.min.css'
42+
import '@gouvminint/vue-dsfr/styles'
43+
44+
import '@gouvfr/dsfr/dist/scheme/scheme.min.css'
45+
import '@gouvfr/dsfr/dist/utility/icons/icons.min.css'
46+
47+
import { createApp } from 'vue'
48+
import { OhVueIcon, addIcons } from 'oh-vue-icons' // [!code --]
49+
50+
import App from './App.vue'
51+
import router from './router/index'
52+
import * as icons from './icons' // [!code --]
53+
54+
import './main.css'
55+
56+
addIcons(...Object.values(icons)) // [!code --]
57+
58+
createApp(App)
59+
.use(router)
60+
.component('VIcon', OhVueIcon) // [!code --]
61+
.mount('#app')
62+
```
63+
64+
:::
65+
66+
Il faudra supprimer le fichier `icons.ts` qui n’est plus utile.
67+
68+
Si vous importiez vous-même `OhVueIcon` de `oh-vue-icons` dans certains composants, il faudra remplacer le module de l’import par `@gouvminint/vue-dsfr` :
69+
70+
```vue
71+
<script lang="ts" setup>
72+
import { OhVueIcon as VIcon } from 'oh-vue-icons' // [!code --]
73+
import { VIcon } from '@gouvminint/vue-dsfr' // [!code ++]
74+
</script>
75+
```
76+
77+
Il faudra peut-être dans certains cas renommer les icônes car la syntaxe attendue par `@iconify/vue` est `nom-de-collection:nom-d-icone` alors que `oh-vue-icon` attendait simplement `nom-de-collection-nom-d-icone` et les noms de collections ne sont pas forcément identiques entre `oh-vue-icons` et `@iconify/vue`.
78+
79+
::: tip Astuce
80+
Si vous en êtes resté aux icônes remix icons, le nom de la collection étant d’une part sans tiret `-` et d’autre part identique entre `oh-vue-icons` et `@iconify/vue` (`ri`), vous n’aurez rien à modifier. Idem pour Bootstrap Icons (`bi`).
81+
:::
82+
83+
Dans les cas ou le nom de la collection ne contient pas de tiret `-`, alors le `-` est accepté en tant que séparateur entre le nom de collection et le nom d’icône.
84+
85+
##### Nuxt
86+
87+
Il faudra utiliser la [v2](https://github.com/laruiss/vue-dsfr-nuxt-module/releases/tag/v2.0.0) de [`vue-dsfr-nuxt-module`](https://github.com/laruiss/vue-dsfr-nuxt-module), et enlever `oh-vue-icons` des dépendances et supprimer les références à `oh-vue-icons` :
88+
89+
Dans `nuxt.config.ts` :
90+
91+
```diff
92+
-import * as icons from './icons'
93+
// (...)
94+
export default defineNuxtConfig({
95+
// (...)
96+
- runtimeConfig: {
97+
- public: {
98+
- vueDsfr: {
99+
- icons: Object.values(icons),
100+
- },
101+
- },
102+
- },
103+
104+
```
105+
106+
et supprimer le fichier `icons.ts` si vous en avez un
107+
108+
Il faudra peut-être dans certains cas renommer les icônes car la syntaxe attendue par `@iconify/vue` est `nom-de-collection:nom-d-icone` alors que `oh-vue-icon` attendait simplement `nom-de-collection-nom-d-icone` et les noms de collections ne sont pas forcément identiques entre `oh-vue-icons` et `@iconify/vue`.
33109

34110
Dans les cas ou le nom de la collection ne contient pas de tiret `-`, alors le `-` est accepté en tant que séparateur entre le nom de collection et le nom d’icône.
35111

112+
::: tip Astuce
113+
Si vous en êtes resté aux icônes remix icons, le nom de la collection étant d’une part sans tiret `-` et d’autre part identique entre `oh-vue-icons` et `@iconify/vue` (`ri`), vous n’aurez rien à modifier. Idem pour Bootstrap Icons (`bi`).
114+
:::
115+
36116
### Les onglets
37117

38118
Avant la version 6.x de VueDsfr, pour activer un onglet particulier, il fallait passer la prop `selected` au bon titre d’onglet et à la bonne zone de contenu.
39119

120+
Nous avions exposé un composable `useTabs()` pour faciliter un peu cette gestion. C’était pourtant déjà trop compliqué à notre goût.
121+
40122
Désormais c’est beaucoup plus simple, il suffit d’utiliser `v-model` sur le composant parent `DsfrTabs`.
41123

124+
### Les accordéons
125+
126+
Désormais, comme pour les onglets, pour choisir un accordéon particulier à ouvrir, il faudra utiliser `v-model` sur le composant [`DsfrAccordionsGroup`](/composants/DsfrAccordionsGroup), tel que décrit dans la [documentation](/composants/DsfrAccordionsGroup).
127+
42128
## Migration vers 3.x (depuis 1.x ou 2.x)
43129

44130
La migration de la version 1.x ou 2.x vers la version 3.x nécessite un certain nombre de changements

src/components/DsfrAccordion/DsfrAccordionsGroup.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# DsfrAccordionsGroup - Documentation Vue.js
1+
# Groupe d’accordéons - `DsfrAccordionsGroup`
22

33
## 🌟 Introduction
44

@@ -14,13 +14,17 @@ Le composant `DsfrAccordionsGroup` agit comme un conteneur pour les composants d
1414

1515
| Nom de Prop | Type | Par défaut | Description |
1616
|-------------|------|------------|-------------|
17-
| `modelValue` | `number` | `-1` | Index de l'accordéon actuellement actif. Ce prop est utilisé pour le contrôle externe de l'accordéon sélectionné. |
17+
| `modelValue` | `number` | `-1` | Index de l'accordéon actuellement actif. Cette prop est utilisée pour le contrôle externe de l'accordéon ouvert (un seul peut être ouvert à la fois). |
1818

1919
## 📡 Événements
2020

2121
| Nom de l'Événement | Payload | Description |
2222
|--------------------|---------|-------------|
23-
| `update:modelValue` | `number` | Émis lorsque l'accordéon actif change. Le payload est l'index du nouvel accordéon actif. |
23+
| `update:modelValue` | `number` | Émis lorsque l'accordéon actif change. Le payload est l'index du nouvel accordéon ouvert. |
24+
25+
::: tip Astuce
26+
Il est donc possible (et recommandé) d’utiliser la directive `v-model` sur ce composant.
27+
:::
2428

2529
## 🧩 Slots
2630

0 commit comments

Comments
 (0)