# DAE (Défibrillateur) Feature - Implementation Plan
## Common Context Prefix (include at the top of every task prompt)
```
## Project Context - DAE Feature Integration
You are working on the React Native app "Alerte Secours" at `/home/jo/lab/alerte-secours/apps/as-app/`.
Branch: `feat/dae`
### Architecture Overview
- **Framework:** React Native with Expo v53
- **Navigation:** React Navigation v6 (Stack → Drawer → Tabs)
- `RootStack.js` (Stack) → `Drawer.js` (Drawer) → `Main/index.js` (Material Top Tabs)
- Each drawer screen can be a standalone scene or use a Bottom Tab Navigator
- **State Management:** Zustand v5 with custom atomic wrapper (`~/lib/atomic-zustand`)
- Stores defined in `~/stores/index.js`, each atom in `~/stores/{name}.js`
- Usage: `const { foo } = useFooState(["foo"])` or `fooActions.doSomething()`
- **Maps:** MapLibre React Native (`@maplibre/maplibre-react-native`)
- Map components in `~/containers/Map/` (Camera, MapView, FeatureImages, ShapePoints, etc.)
- Route calculation via OSRM in `~/scenes/AlertCurMap/routing.js`
- Clustering via supercluster in `useFeatures` hooks
- **Styling:** React Native Paper v5 + custom `createStyles()`/`useStyles()` from `~/theme`
- **Icons:** `@expo/vector-icons` (MaterialCommunityIcons, MaterialIcons, Entypo)
- **Forms:** React Hook Form
- **GraphQL:** Apollo Client v3
- **Module alias:** `~` maps to `src/`
### Key Existing Patterns
**Drawer Screen Registration** (`src/navigation/Drawer.js`):
- Screens are ``
- Hidden screens use `options={{ hidden: true }}`
- Menu item sections are organized by index ranges in `DrawerItemList.js` (indices 0-4 = "Alerter", 5-8 = "Mon compte", 9+ = "Infos pratiques")
**Header Titles** (`src/navigation/RootStack.js`):
- `getHeaderTitle(route)` switch-case maps route names to display titles
**Bottom Tab Navigator Pattern** (reference: `src/scenes/AlertAgg/index.js`):
- `createBottomTabNavigator()` with `Tab.Screen` entries
- `screenOptions={{ headerShown: false, tabBarLabelStyle: { fontSize: 13 }, lazy: true, unmountOnBlur: true }}`
- Tab icons use MaterialCommunityIcons
**Action Buttons Pattern** (reference: `src/scenes/AlertCurOverview/index.js`):
- `