From 37c05b0f9b62c4372dba2c785cae608182749512 Mon Sep 17 00:00:00 2001 From: Thibaud Dauce Date: Mon, 22 Dec 2025 11:16:08 +0100 Subject: [PATCH 1/6] feat: migrate toasts to vue-sonner --- app.vue | 9 +- .../AdminCommunityResourcesTable.vue | 3 +- .../AdminContactPointsTable.vue | 3 +- .../AdminUpdateDataserviceDatasetsPage.vue | 3 +- .../AdminUpdateDataservicePage.vue | 7 +- components/Dataservices/SearchPage.vue | 3 +- .../Datasets/AdminDatasetResourcesPage.vue | 3 +- .../Datasets/AdminUpdateDatasetPage.vue | 8 +- components/Datasets/DescribeResource.vue | 4 +- components/Datasets/SearchPage.vue | 3 +- components/Organization/Search.vue | 3 +- components/Pages/SiteEditoPage.vue | 2 +- .../AdminUpdateReuseDataservicesPage.vue | 3 +- .../Reuses/AdminUpdateReuseDatasetsPage.vue | 3 +- components/Reuses/AdminUpdateReusePage.vue | 3 +- components/SiteHeader/SiteHeader.vue | 4 +- components/Support/Choices.vue | 4 +- components/Toaster/Toaster.client.vue | 329 ------------------ components/Toaster/api.ts | 53 --- components/Toaster/defaults/positions.ts | 30 -- components/Toaster/helpers/event-bus.ts | 5 - components/Toaster/helpers/mount-component.ts | 27 -- components/Toaster/helpers/remove-element.ts | 12 - components/Toaster/helpers/timer.ts | 30 -- components/TransferBanner.vue | 3 +- components/User/AdminUserProfilePage.vue | 3 +- components/User/ChangeEmailModal.vue | 3 +- components/User/ChangePasswordModal.vue | 3 +- components/User/DeleteUserModal.vue | 3 +- composables/useToast.client.ts | 10 - datagouv-components/package.json | 1 + .../src/components/CopyButton.vue | 14 +- datagouv-components/src/main.ts | 2 + package.json | 1 - pages/admin/harvesters/[id].vue | 3 +- pages/admin/harvesters/[id]/configuration.vue | 3 +- .../organizations/[oid]/profile/index.vue | 3 +- pages/admin/posts/[id]/content.vue | 2 +- pages/admin/posts/[id]/index.vue | 3 +- pages/admin/topics/[id]/index.vue | 3 +- pages/login.vue | 3 +- pages/organizations/[oid]/information.vue | 3 +- pages/register.vue | 3 +- pages/reset/[token].vue | 3 +- plugins/api.ts | 3 +- pnpm-lock.yaml | 35 +- 46 files changed, 86 insertions(+), 578 deletions(-) delete mode 100644 components/Toaster/Toaster.client.vue delete mode 100644 components/Toaster/api.ts delete mode 100644 components/Toaster/defaults/positions.ts delete mode 100644 components/Toaster/helpers/event-bus.ts delete mode 100644 components/Toaster/helpers/mount-component.ts delete mode 100644 components/Toaster/helpers/remove-element.ts delete mode 100644 components/Toaster/helpers/timer.ts delete mode 100644 composables/useToast.client.ts diff --git a/app.vue b/app.vue index 28a0a3e56..ae899a568 100644 --- a/app.vue +++ b/app.vue @@ -1,6 +1,12 @@ diff --git a/datagouv-components/src/main.ts b/datagouv-components/src/main.ts index a27b90bc2..0523b76a3 100644 --- a/datagouv-components/src/main.ts +++ b/datagouv-components/src/main.ts @@ -72,6 +72,8 @@ import TranslationT from './components/TranslationT.vue' import type { UseFetchFunction } from './functions/api.types' import { configKey, useComponentsConfig, type PluginConfig } from './config.js' +export { Toaster, toast } from 'vue-sonner' + export * from './composables/useActiveDescendant' export * from './composables/useMetrics' export * from './composables/useReuseType' diff --git a/package.json b/package.json index 92eea8f5d..0b8b3a48e 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,6 @@ "gray-matter": "^4.0.3", "leaflet": "^1.9.4", "lodash-es": "^4.17.21", - "mitt": "^3.0.1", "nuxt": "~3.16.2", "ofetch": "^1.4.1", "papaparse": "^5.5.3", diff --git a/pages/admin/harvesters/[id].vue b/pages/admin/harvesters/[id].vue index 11f0a1987..22ed9a307 100644 --- a/pages/admin/harvesters/[id].vue +++ b/pages/admin/harvesters/[id].vue @@ -150,7 +150,7 @@ From 06f1100ed1e96aa7df1c145ff892ccf7ec848d82 Mon Sep 17 00:00:00 2001 From: Thibaud Dauce Date: Mon, 22 Dec 2025 11:32:07 +0100 Subject: [PATCH 3/6] fix merge --- datagouv-components/assets/main.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/datagouv-components/assets/main.css b/datagouv-components/assets/main.css index df5a7608f..cd3187065 100644 --- a/datagouv-components/assets/main.css +++ b/datagouv-components/assets/main.css @@ -256,6 +256,8 @@ [data-sonner-toast][data-type="info"] [data-close-button] { border-color: var(--color-new-info) !important; color: var(--color-new-info) !important; + } + .fr-connect { padding-left: 4.375em !important; } From 7660a62eb61bf3e28a0a61028bf28fa5308d41b9 Mon Sep 17 00:00:00 2001 From: Thibaud Dauce Date: Tue, 23 Dec 2025 09:53:29 +0100 Subject: [PATCH 4/6] use dataset instead of datasetForm --- components/Datasets/AdminUpdateDatasetPage.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/Datasets/AdminUpdateDatasetPage.vue b/components/Datasets/AdminUpdateDatasetPage.vue index f6df1ef13..3a8166cec 100644 --- a/components/Datasets/AdminUpdateDatasetPage.vue +++ b/components/Datasets/AdminUpdateDatasetPage.vue @@ -215,7 +215,7 @@ async function switchDatasetPrivate() { body: JSON.stringify(datasetToApi(datasetForm.value, { private: !datasetForm.value.private })), }) await refresh() - if (datasetForm.value.private) { + if (dataset.value?.private) { toast.success(t('Jeu de données passé en brouillon !')) } else { From 07deae43eb60939468bbeb28a0b85f33414cb372 Mon Sep 17 00:00:00 2001 From: Thibaud Dauce Date: Tue, 23 Dec 2025 09:56:24 +0100 Subject: [PATCH 5/6] fix archived toast messages --- components/Dataservices/AdminUpdateDataservicePage.vue | 4 ++-- components/Datasets/AdminUpdateDatasetPage.vue | 4 ++-- components/Reuses/AdminUpdateReusePage.vue | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/Dataservices/AdminUpdateDataservicePage.vue b/components/Dataservices/AdminUpdateDataservicePage.vue index 9f214515d..0038872ed 100644 --- a/components/Dataservices/AdminUpdateDataservicePage.vue +++ b/components/Dataservices/AdminUpdateDataservicePage.vue @@ -201,10 +201,10 @@ async function archiveDataservice() { }) await refresh() if (dataservice.value?.archived_at) { - toast.success(t('API désarchivée !')) + toast.success(t('API archivée !')) } else { - toast.success(t('API archivée !')) + toast.success(t('API désarchivée !')) } window.scrollTo({ top: 0, left: 0, behavior: 'smooth' }) } diff --git a/components/Datasets/AdminUpdateDatasetPage.vue b/components/Datasets/AdminUpdateDatasetPage.vue index 3a8166cec..e764ff200 100644 --- a/components/Datasets/AdminUpdateDatasetPage.vue +++ b/components/Datasets/AdminUpdateDatasetPage.vue @@ -253,10 +253,10 @@ async function archiveDataset() { }) await refresh() if (dataset.value?.archived) { - toast.success(t('Jeu de données désarchivé !')) + toast.success(t('Jeu de données archivé !')) } else { - toast.success(t('Jeu de données archivé !')) + toast.success(t('Jeu de données désarchivé !')) } window.scrollTo({ top: 0, left: 0, behavior: 'smooth' }) } diff --git a/components/Reuses/AdminUpdateReusePage.vue b/components/Reuses/AdminUpdateReusePage.vue index 8b5109316..9aa569bf4 100644 --- a/components/Reuses/AdminUpdateReusePage.vue +++ b/components/Reuses/AdminUpdateReusePage.vue @@ -222,10 +222,10 @@ async function archiveReuse() { await refresh() if (reuse.value?.archived) { - toast.success(t('Réutilisation désarchivée !')) + toast.success(t('Réutilisation archivée !')) } else { - toast.success(t('Réutilisation archivée !')) + toast.success(t('Réutilisation désarchivée !')) } window.scrollTo({ top: 0, left: 0, behavior: 'smooth' }) } From b2457584d33ab613293cf34f0fc33a6f71eed9fa Mon Sep 17 00:00:00 2001 From: Thibaud Dauce Date: Tue, 23 Dec 2025 10:03:54 +0100 Subject: [PATCH 6/6] fix reuse message --- components/Reuses/AdminUpdateReusePage.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/Reuses/AdminUpdateReusePage.vue b/components/Reuses/AdminUpdateReusePage.vue index 9aa569bf4..ae771aeba 100644 --- a/components/Reuses/AdminUpdateReusePage.vue +++ b/components/Reuses/AdminUpdateReusePage.vue @@ -248,10 +248,10 @@ async function switchReusePrivate() { await refresh() if (reuse.value?.private) { - toast.success(t('Réutilisation publiée !')) + toast.success(t('Réutilisation passée en brouillon !')) } else { - toast.success(t('Réutilisation passée en brouillon !')) + toast.success(t('Réutilisation publiée !')) } window.scrollTo({ top: 0, left: 0, behavior: 'smooth' }) }