Aqui no addAddress a gente já tem os fields, então a gente pode apenas criar o handle para adicionar o endereço
const navigation = useNavigation<PropsStack>();
{/* Outros códigos */}
const handleAddAddress = async () => {
if (fields.cep.length < 8) {
Alert.alert("Você precisa preencher tudo do seu CEP");
return;
} else if (
!fields.city ||
!fields.district ||
!fields.number ||
!fields.state ||
!fields.street
) {
Alert.alert("Algum dos seus campos obrigatórios está vazio");
return;
}
const params = fields;
const data = await addressService.addAddress(params);
if (data.status === 201) {
navigation.navigate("AllAddress");
}
};
Nós podemos também deixar a verificação mais curta com filtros, para que não fique esse bolo gigante de código
const handleAddAddress = async () => {
if (fields.cep.length < 8) {
Alert.alert("Você precisa preencher tudo do seu CEP");
return;
} else if (
Object.entries(fields)
.filter(([key, value]) => key !== "complement")
.some(([key, value]) => value === "")
) {
Alert.alert("Algum dos seus campos obrigatórios está vazio");
return;
}
const params = fields;
const data = await addressService.addAddress(params);
if (data.status === 201) {
navigation.navigate("AllAddress");
}
};
Com isso feito, nós vamos poder criar um endereço para esse nosso usuário, vamos criar aqui o endereço e preencher as informações necessárias, e poderemos ver lá no mongoDB o endereço criado para esse usuário
Antes de irmos verificar o get do endereço nós vamos colocar aqui dentro de routes um parâmetro, para que quando a gente navegar da página de CreateAddress para GetAddress a gente atualize os endereços que são pegos
AllAddress: {
newAddress: string;
};
E aí agora vamos lá no “AddAddress” e também no UserProfile para que a gente coloque essa string.
AddAddress
if (data.status === 201) {
navigation.navigate("AllAddress", {
newAddress: fields.street,
});
}
Profile
<AddressText
onPress={() => {
navigation.navigate("AllAddress", {
newAddress: "",
});
}}
>
Gerenciar Endereços
</AddressText>