# Corrections Page Campagne - 3 février 2026

## Résumé des corrections appliquées

### ✅ 1. Slider de rayon (Slider.svelte)
**Problème**: Le Slider utilisait deux `$effect` créant une boucle et empêchant la mise à jour.
**Solution**: Utilisation de `$derived` + `onValueChange` callback pour éviter les boucles.

### ✅ 2. GeographicTargeting - onRadiusChange
**Problème**: L'effet se déclenchait à chaque render au lieu de seulement sur changement.
**Solution**: Tracker `previousRadius` et ne déclencher que sur changement réel.

### ✅ 3. InteractiveMap - Mise à jour du rayon
**Problème**: L'effet ne s'exécutait pas correctement car les dépendances n'étaient pas captées.
**Solution**: Capturer explicitement toutes les dépendances et tracker `previousCityRadius`.

### ✅ 4. InteractiveMap - Marqueur de ville
**Problème**: Le marqueur n'était créé qu'une fois et jamais repositionné.
**Solution**: Supprimer l'ancien marqueur et en créer un nouveau à chaque changement de ville.

### ✅ 5. Synchronisation des dates (campaigns/new)
**Problème**: Lors du chargement d'une campagne, seul `dateRange` était défini.
**Solution**: Synchroniser toutes les variables: `dateRange`, `startDateValue`, `endDateValue`, `campaignStartDate`, `campaignEndDate`.

## Fichiers modifiés

| Fichier | Modification |
|---------|-------------|
| `src/lib/components/ui/slider/Slider.svelte` | $derived + onValueChange |
| `src/lib/components/GeographicTargeting.svelte` | previousRadius tracking |
| `src/lib/components/InteractiveMap.svelte` | previousCityRadius + marqueur recréé |
| `src/routes/(dashboard)/dashboard/campaigns/new/+page.svelte` | Sync dates complète |

## API Company - Debug

L'API `/api/company` a des logs pour debug:
```
[PATCH /api/company] Starting update...
[PATCH /api/company] User: xxx Company: xxx
[PATCH /api/company] Company role: owner/admin/member
[PATCH /api/company] Query: UPDATE type::thing("company", $companyId) SET field = $field...
```

**Pour voir l'erreur**: Vérifier les logs du terminal après une tentative de sauvegarde.

## Tests à effectuer

### Test 1: Slider de rayon
1. Aller sur création de campagne, step 3
2. Choisir mode "adresse"
3. Saisir une ville
4. Déplacer le slider de rayon
5. **Attendu**: Le cercle sur la carte change en temps réel

### Test 2: Calendrier
1. Aller sur création de campagne, step 3
2. Cliquer sur une date de début dans le calendrier
3. Cliquer sur une date de fin
4. **Attendu**: La plage est sélectionnée visuellement

### Test 3: Édition campagne
1. Créer une campagne avec dates
2. Revenir sur la campagne
3. **Attendu**: Les dates sont pré-remplies dans le calendrier
4. Modifier les dates
5. **Attendu**: Les nouvelles dates sont sauvegardées

### Test 4: Modification entreprise
1. Aller sur la page profil
2. Modifier un champ entreprise (nom, adresse...)
3. Cliquer sur Enregistrer
4. **Attendu**: Pas d'erreur, données sauvegardées
5. **Si erreur**: Vérifier les logs terminal pour `[PATCH /api/company]`

## Dépannage

### Si le slider ne fonctionne pas
- Vérifier que bits-ui est à jour
- Vérifier la console pour erreurs JavaScript

### Si le calendrier n'est pas cliquable
- Vérifier z-index des éléments parents
- Vérifier qu'il n'y a pas d'overlay invisible

### Si l'API company échoue
- Vérifier que l'utilisateur a `company_role: "owner"` ou `"admin"`
- Vérifier les logs serveur pour l'erreur exacte
