Conversion vers données JSON statiques pour compatibilité APK

- Création des fichiers JSON dans public/data/
- Modification de tous les composants pour fetch depuis /data/*.json
- PlaceList, FAQ, Lexique, Tides, SunTimes, Excursions, Notifications
- Données complètes pour Fakarava (plages, restaurants, épiceries)
- Fix docker-compose.build.yml (suppression volume node_modules)
This commit is contained in:
2025-11-23 10:23:13 +01:00
parent 115d8c05a7
commit d0694df12a
67 changed files with 377 additions and 1034 deletions

View File

@ -23,7 +23,7 @@ export default function ExcursionBooking() {
useEffect(() => {
const fetchExcursions = async () => {
try {
const response = await fetch("/api/excursions");
const response = await fetch("/data/excursions.json");
const data = await response.json();
setExcursions(data);
} catch (error) {
@ -41,30 +41,18 @@ export default function ExcursionBooking() {
if (!selectedExcursion) return;
setSubmitting(true);
try {
const response = await fetch("/api/excursions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
excursionId: selectedExcursion.id,
...formData,
}),
});
const result = await response.json();
if (result.success) {
setSuccess(true);
setFormData({ name: "", email: "", phone: "", date: "", participants: 1 });
setTimeout(() => {
setSuccess(false);
setSelectedExcursion(null);
}, 3000);
}
} catch (error) {
console.error("Erreur lors de la réservation:", error);
} finally {
// Simuler l'envoi de réservation (sans backend)
// Dans une version production, cela devrait appeler une API ou envoyer un email
setTimeout(() => {
setSuccess(true);
setFormData({ name: "", email: "", phone: "", date: "", participants: 1 });
setTimeout(() => {
setSuccess(false);
setSelectedExcursion(null);
}, 3000);
setSubmitting(false);
}
}, 1000);
};
const getExcursionTypeLabel = (type: string) => {