Build APK Android fonctionnel - Corrections finales

- Ajout de Java 21 dans Dockerfile pour compatibilité Capacitor
- Création de fichiers de types séparés (lib/types/) pour éviter dépendances API routes
- Configuration next.config.export.js pour export statique
- Exclusion temporaire des routes API pendant le build
- Correction configuration Gradle (Java 17/21)
- Script build-apk.sh amélioré avec gestion des routes API
- APK généré avec succès (4.5MB) dans dist/compagnon-admin-debug.apk

Fichiers de types créés:
- lib/types/place.ts
- lib/types/infos.ts
- lib/types/tides.ts
- lib/types/excursions.ts
- lib/types/sun-times.ts
- lib/types/notifications.ts

Tous les imports mis à jour pour utiliser les nouveaux fichiers de types.
This commit is contained in:
2025-11-23 10:07:34 +01:00
parent 51a74342f4
commit 115d8c05a7
83 changed files with 1143 additions and 679 deletions

View File

@ -3,7 +3,7 @@
import { MapPin, ExternalLink } from "lucide-react";
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Place } from "@/app/api/places/route";
import { Place } from "@/lib/types/place";
interface PlaceCardProps {
place: Place;

View File

@ -2,7 +2,7 @@
import { useEffect, useState } from "react";
import PlaceCard from "./PlaceCard";
import { Place } from "@/app/api/places/route";
import { Place } from "@/lib/types/place";
interface PlaceListProps {
category: string;

View File

@ -7,7 +7,7 @@ import {
AccordionTrigger,
AccordionContent,
} from "@/components/ui/accordion";
import { FAQItem } from "@/app/api/infos/route";
import { FAQItem } from "@/lib/types/infos";
export default function FAQAccordion() {
const [faqItems, setFaqItems] = useState<FAQItem[]>([]);

View File

@ -2,7 +2,7 @@
import { useEffect, useState } from "react";
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
import { LexiqueItem } from "@/app/api/infos/route";
import { LexiqueItem } from "@/lib/types/infos";
export default function LexiqueSection() {
const [lexiqueItems, setLexiqueItems] = useState<LexiqueItem[]>([]);

View File

@ -4,7 +4,7 @@ import { useState, useEffect } from "react";
import { Calendar, Users, CheckCircle } from "lucide-react";
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Excursion } from "@/app/api/excursions/route";
import { Excursion } from "@/lib/types/excursions";
export default function ExcursionBooking() {
const [excursions, setExcursions] = useState<Excursion[]>([]);

View File

@ -4,7 +4,7 @@ import { useEffect, useState } from "react";
import { Bell, BellOff, X } from "lucide-react";
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Notification } from "@/app/api/notifications/route";
import { Notification } from "@/lib/types/notifications";
export default function PushNotificationManager() {
const [notifications, setNotifications] = useState<Notification[]>([]);

View File

@ -3,7 +3,7 @@
import { useEffect, useState } from "react";
import { Sun, Sunrise, Sunset } from "lucide-react";
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
import { SunTimes } from "@/app/api/sun-times/route";
import { SunTimes } from "@/lib/types/sun-times";
export default function SunTimesWidget() {
const [sunTimes, setSunTimes] = useState<SunTimes | null>(null);

View File

@ -3,7 +3,7 @@
import { useEffect, useState } from "react";
import { Waves, TrendingUp, TrendingDown } from "lucide-react";
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
import { TideData } from "@/app/api/tides/route";
import { TideData } from "@/lib/types/tides";
export default function TideWidget() {
const [tides, setTides] = useState<TideData[]>([]);