Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, { useEffect, useState } from "react";
- import { StyleSheet, Text, View, Dimensions } from "react-native";
- import MapView, { Marker, Callout, PROVIDER_GOOGLE } from "react-native-maps";
- import mapMarker from "../images/map-marker.png";
- import { Feather } from "@expo/vector-icons";
- import { useNavigation } from "@react-navigation/native";
- import { RectButton } from "react-native-gesture-handler";
- import api from "../services/api";
- interface Orphanage {
- id: number;
- name: string;
- latitude: number;
- longitude: number;
- }
- export default function OrphanagesMap() {
- const [orphanages, setOrphanages] = useState<Orphanage[]>([]);
- const navigation = useNavigation();
- useEffect(() => {
- api.get("orphanages").then((response) => {
- setOrphanages(response.data);
- });
- }, []);
- function handleNavigateToOrphanageDetails() {
- navigation.navigate("OrphanageDetails");
- }
- function handleNavigateToCreateOrphanage() {
- navigation.navigate("SelectMapPosition");
- }
- return (
- <View style={styles.container}>
- <MapView
- provider={PROVIDER_GOOGLE}
- style={styles.map}
- initialRegion={{
- latitude: -2.5335324,
- longitude: -44.1815166,
- latitudeDelta: 0.008,
- longitudeDelta: 0.008,
- }}
- >
- {orphanages.map((orphanage) => {
- return (
- <Marker
- key={orphanage.id}
- icon={mapMarker}
- calloutAnchor={{
- x: 2.7,
- y: 0.8,
- }}
- coordinate={{
- latitude: orphanage.latitude,
- longitude: orphanage.longitude,
- }}
- >
- <Callout tooltip onPress={handleNavigateToOrphanageDetails}>
- <View style={styles.calloutContainer}>
- <Text style={styles.calloutText}>{orphanage.name}</Text>
- </View>
- </Callout>
- </Marker>
- );
- })}
- </MapView>
- <View style={styles.footer}>
- <Text style={styles.footerText}>2 orfanatos encontrados</Text>
- <RectButton
- style={styles.createOrphanageButton}
- onPress={handleNavigateToCreateOrphanage}
- >
- <Feather name="plus" size={20} color="#fff" />
- </RectButton>
- </View>
- </View>
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement