feat(ui): replace native confirm() with DaisyUI modal composable (F7.2)

Create useConfirm composable (promise-based, singleton state) and
ConfirmModal component. Replace all 10 confirm()/window.confirm() calls
across 9 pages and 1 composable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-02-09 11:20:13 +01:00
parent 046f464378
commit 6152848957
11 changed files with 152 additions and 21 deletions

View File

@@ -3,6 +3,7 @@ import { navigateTo, useRoute } from '#imports'
import { useSites } from '~/composables/useSites'
import { useToast } from '~/composables/useToast'
import { useDocuments } from '~/composables/useDocuments'
import { useConfirm } from '~/composables/useConfirm'
import { getFileIcon } from '~/utils/fileIcons'
import { canPreviewDocument } from '~/utils/documentPreview'
@@ -41,6 +42,7 @@ export function useSiteManagement() {
const { showError, showSuccess } = useToast()
const { sites, loading, loadSites, createSite, updateSite, deleteSite } = useSites()
const { uploadDocuments, deleteDocument, loadDocumentsBySite } = useDocuments()
const { confirm: confirmDialog } = useConfirm()
const showAddSiteModal = ref(false)
const showEditSiteModal = ref(false)
@@ -132,7 +134,8 @@ export function useSiteManagement() {
if (index !== -1) {
sites.value[index] = {
...sites.value[index],
...updated
...updated,
id,
}
}
}
@@ -251,9 +254,9 @@ export function useSiteManagement() {
const confirmDeleteSite = async (site: SiteWithDocuments) => {
if (
!confirm(
`Êtes-vous sûr de vouloir supprimer le site "${site.name}" ? Cette action est irréversible.`
)
!await confirmDialog({
message: `Êtes-vous sûr de vouloir supprimer le site "${site.name}" ? Cette action est irréversible.`,
})
) {
return
}