You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.0 KiB

  1. import { StyleSheet, View } from "react-native";
  2. import React from "react";
  3. import useMarkers from "../hooks/selectFromDB";
  4. import MapMarker from "../components/MapMarker";
  5. function isRequestedValue(
  6. item,
  7. renderRain,
  8. renderFlood,
  9. renderRiver,
  10. renderPluviometer
  11. ) {
  12. return (
  13. (item.name == "pluviometer" && renderPluviometer) ||
  14. (item.name == "rain" && renderRain) ||
  15. (item.name == "river" && renderRiver) ||
  16. (item.name == "flood" && renderFlood)
  17. );
  18. }
  19. function MapMarkerList({
  20. reload = null,
  21. renderRain = true,
  22. renderFlood = true,
  23. renderRiver = true,
  24. renderPluviometer = true,
  25. }) {
  26. const markers = useMarkers(reload);
  27. return (
  28. <>
  29. {[...markers.markers]
  30. .filter((item) =>
  31. isRequestedValue(
  32. item,
  33. renderRain,
  34. renderFlood,
  35. renderRiver,
  36. renderPluviometer
  37. )
  38. )
  39. .map(({ ID, ...val }) => {
  40. return <MapMarker key={ID.toString()} {...val} />;
  41. })}
  42. </>
  43. );
  44. }
  45. export { MapMarkerList };