Grapevine_Disease_Detection/VinEye
Yanis 05ea1df6ff feat(my-plants): skeleton + animations + ConfirmDialog (fix double modal)
ConfirmDialog (nouveau composant ui réutilisable) :
- Modal RN avec backdrop noir 50%, card rounded-3xl + shadow
- Variant 'destructive' (icône AlertTriangle rouge) ou 'default' (Check vert)
- Boutons côte-à-côte avec icônes X/Trash2/Check, minHeight 52px,
  ghost grisé bordé + primary/destructive avec shadow
- Tap backdrop = cancel, tap dialog = no-op via stopPropagation

ScanListItem :
- Remplace Alert.alert natif par ConfirmDialog stylé pour la suppression
- Le swipe gauche → bouton Supprimer → un seul modal ConfirmDialog → confirm

MyPlantsScreen :
- Suppression du DOUBLE modal (Alert dans handleDeleteScan était redondant
  avec celui de ScanListItem → 2 modals successifs avant suppression)
  → handleDeleteScan appelle directement deleteScan(id)
- FadeInDown.springify().damping(18) sur header / SearchBar / chaque
  date group avec stagger index*60
- Skeleton loading state : 2 groupes simulés (header bar + 3
  ScanListItemSkeleton dans une card-loading sans elevation)

DateGroupAccordion :
- Retrait de l'elevation Android sur styles.card → fix le flash "rectangle
  blanc + ombre" pendant l'animation FadeInDown du parent. iOS shadow
  conservée (composite layer respecte l'opacité)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 01:05:54 +02:00
..
.claude chore(ml,android): retire react-native-fast-tflite + nitro, mock JS only 2026-04-30 21:14:38 +02:00
assets feat(mobile): UI overhaul + ML pipeline + Android build fixes 2026-04-30 21:00:03 +02:00
plugins chore(ml,android): retire react-native-fast-tflite + nitro, mock JS only 2026-04-30 21:14:38 +02:00
src feat(my-plants): skeleton + animations + ConfirmDialog (fix double modal) 2026-05-01 01:05:54 +02:00
.gitignore add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
.npmrc chore(deps,infra): pnpm hoisted mode + dependency cleanup for Map rebuild 2026-04-30 12:31:39 +02:00
app.json chore(ml,android): retire react-native-fast-tflite + nitro, mock JS only 2026-04-30 21:14:38 +02:00
App.tsx chore(i18n,ui): keys for home/map/scan-detail + minor polish 2026-05-01 00:03:55 +02:00
babel.config.js add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
CLAUDE.md chore(ml,android): retire react-native-fast-tflite + nitro, mock JS only 2026-04-30 21:14:38 +02:00
components.json add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
global.css add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
index.ts add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
metro.config.js feat(mobile): UI overhaul + ML pipeline + Android build fixes 2026-04-30 21:00:03 +02:00
nativewind-env.d.ts add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
package.json chore(ml,android): retire react-native-fast-tflite + nitro, mock JS only 2026-04-30 21:14:38 +02:00
pnpm-lock.yaml chore(ml,android): retire react-native-fast-tflite + nitro, mock JS only 2026-04-30 21:14:38 +02:00
tailwind.config.js add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
tsconfig.json add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00