diff --git a/src/assets/img/icon-dae.png b/src/assets/img/icon-dae.png new file mode 100644 index 0000000..9d16ba9 Binary files /dev/null and b/src/assets/img/icon-dae.png differ diff --git a/src/assets/img/marker-dae.png b/src/assets/img/marker-dae.png new file mode 100644 index 0000000..e5e59a7 Binary files /dev/null and b/src/assets/img/marker-dae.png differ diff --git a/src/containers/Map/FeatureImages.js b/src/containers/Map/FeatureImages.js index 41f690e..a1bfa0a 100644 --- a/src/containers/Map/FeatureImages.js +++ b/src/containers/Map/FeatureImages.js @@ -10,6 +10,7 @@ import markerRedDisabled from "~/assets/img/marker-red-disabled.png"; import markerYellowDisabled from "~/assets/img/marker-yellow-disabled.png"; import markerGreenDisabled from "~/assets/img/marker-green-disabled.png"; import markerOrigin from "~/assets/img/marker-origin.png"; +import markerDae from "~/assets/img/marker-dae.png"; const images = { red: markerRed, @@ -20,6 +21,7 @@ const images = { yellowDisabled: markerYellowDisabled, greenDisabled: markerGreenDisabled, origin: markerOrigin, + dae: markerDae, }; export default function FeatureImages() { diff --git a/src/containers/Map/ShapePoints.js b/src/containers/Map/ShapePoints.js index 3482339..c7ebb2b 100644 --- a/src/containers/Map/ShapePoints.js +++ b/src/containers/Map/ShapePoints.js @@ -17,11 +17,10 @@ const iconStyle = { iconSize: 0.5, }; -const defibCircleStyle = { - circleRadius: 8, - circleColor: ["get", "defibColor"], - circleStrokeColor: "#FFFFFF", - circleStrokeWidth: 2, +const defibStyle = { + iconImage: "dae", + iconSize: 0.5, + iconAllowOverlap: true, }; const useStyles = createStyles(({ theme: { colors } }) => ({ @@ -66,12 +65,12 @@ export default function ShapePoints({ shape, children, ...shapeSourceProps }) { /> {/* Defibrillators (DAE) – separate layer (non-clustered) */} - {children} diff --git a/src/navigation/Drawer.js b/src/navigation/Drawer.js index d51e882..8ff265d 100644 --- a/src/navigation/Drawer.js +++ b/src/navigation/Drawer.js @@ -7,6 +7,8 @@ import { } from "@expo/vector-icons"; import { useNavigation, CommonActions } from "@react-navigation/native"; +import FontAwesome6 from "@expo/vector-icons/FontAwesome6"; + import DrawerContent from "~/navigation/DrawerNav/DrawerContent"; import { useDrawerState } from "~/navigation/Context"; import getDefaultDrawerWidth from "~/navigation/DrawerNav/getDefaultDrawerWidth"; @@ -375,11 +377,16 @@ export default React.memo(function DrawerNav() { options={{ drawerLabel: "Défibrillateurs", drawerIcon: ({ focused }) => ( - + // ), unmountOnBlur: true, }} diff --git a/src/scenes/AlertCurMap/useFeatures.js b/src/scenes/AlertCurMap/useFeatures.js index 3d1b8d9..9a21154 100644 --- a/src/scenes/AlertCurMap/useFeatures.js +++ b/src/scenes/AlertCurMap/useFeatures.js @@ -130,7 +130,6 @@ export default function useFeatures({ id, properties: { id, - defibColor: "#4CAF50", defib, isDefib: true, }, diff --git a/src/scenes/DAEItem/Carte.js b/src/scenes/DAEItem/Carte.js index 6cc1f9c..3f5d5b1 100644 --- a/src/scenes/DAEItem/Carte.js +++ b/src/scenes/DAEItem/Carte.js @@ -22,7 +22,6 @@ import IconTouchTarget from "~/components/IconTouchTarget"; import { useTheme } from "~/theme"; import { useDefibsState, useNetworkState } from "~/stores"; import useLocation from "~/hooks/useLocation"; -import { getDefibAvailability } from "~/utils/dae/getDefibAvailability"; import { osmProfileUrl, profileDefaultModes, @@ -33,6 +32,7 @@ import { setA11yFocusAfterInteractions, } from "~/lib/a11y"; +import markerDae from "~/assets/img/marker-dae.png"; import RoutingSteps from "~/scenes/AlertCurMap/RoutingSteps"; import MapHeadRouting from "~/scenes/AlertCurMap/MapHeadRouting"; @@ -42,11 +42,6 @@ import { STATE_CALCULATING_LOADING, } from "~/scenes/AlertCurMap/constants"; -const STATUS_COLORS = { - open: "#4CAF50", - closed: "#F44336", - unknown: "#9E9E9E", -}; export default React.memo(function DAEItemCarte() { const { colors } = useTheme(); @@ -206,10 +201,6 @@ export default React.memo(function DAEItemCarte() { // Defib marker GeoJSON const defibGeoJSON = useMemo(() => { if (!hasDefibCoords) return null; - const { status } = getDefibAvailability( - defib.horaires_std, - defib.disponible_24h, - ); return { type: "FeatureCollection", features: [ @@ -222,7 +213,6 @@ export default React.memo(function DAEItemCarte() { properties: { id: defib.id, nom: defib.nom || "Défibrillateur", - color: STATUS_COLORS[status], }, }, ], @@ -370,22 +360,17 @@ export default React.memo(function DAEItemCarte() { )} + + {/* Defib marker */} {defibGeoJSON && ( - { - const { status } = getDefibAvailability(d.horaires_std, d.disponible_24h); return { type: "Feature", id: d.id, @@ -45,8 +39,6 @@ function defibsToGeoJSON(defibs) { properties: { id: d.id, nom: d.nom || "Défibrillateur", - status, - color: STATUS_COLORS[status], }, }; }), @@ -176,27 +168,19 @@ export default React.memo(function DAEListCarte() { detached={false} /> + + {geoJSON.features.length > 0 && ( -