1. Agora vamos criar a tela de adicionar endereços. Nós vamos começar criando dentro de “screens” uma pasta chamada “addAddress” com os arquivos.

  2. Vamos começar criando o container da tela

    import styled from "styled-components/native";
    import Constants from "expo-constants";
    
    const statusBarHeight = Constants.statusBarHeight;
    
    export const Container = styled.ScrollView`
      flex: 1;
      background-color: ${({ theme }) => theme.colors.backgroundLight};
      padding-top: ${statusBarHeight}px;
    `;
    
  3. Agora vamos colocar no index junto com o título da tela

    import React from "react";
    import { Container } from "./styled";
    import DefaultTitle from "../../components/common/DefaultTitle";
    
    const AddAddress = () => {
      return (
        <Container>
          <DefaultTitle fontSize={18} title="CADASTRAR ENDEREÇO" />
        </Container>
      );
    };
    
    export default AddAddress;
    
  4. Agora, com isso feito, podemos colocar em rota, para poder visualizarmos.

    export type PropsNavigationStack = {
      Home: undefined;
      Login: undefined;
      Register: undefined;
      Search: {
        query: string;
      };
      UserProfile: undefined;
      SellerProfile: undefined;
      AllAddress: undefined;
      AddAddress: undefined;
    };
    
    const Stack = createNativeStackNavigator<PropsNavigationStack>();
    
    export type PropsStack = NativeStackNavigationProp<PropsNavigationStack>;
    
    const Routes = () => {
      return (
        <NavigationContainer>
          <Stack.Navigator
            screenOptions={{
              headerShown: false,
            }}
          >
            <Stack.Screen name="Home" component={Home} />
            <Stack.Screen name="Search" component={Search} />
            <Stack.Screen name="Login" component={Login} />
            <Stack.Screen name="Register" component={Register} />
            <Stack.Screen name="UserProfile" component={UserProfile} />
            <Stack.Screen name="SellerProfile" component={SellerProfile} />
            <Stack.Screen name="AllAddress" component={AllAddress} />
            <Stack.Screen name="AddAddress" component={AddAddress} />
          </Stack.Navigator>
        </NavigationContainer>
      );
    };
    
    export default Routes;
    
  5. Nós agora temos ela na rota, vamos adicionar ela nos botões para poder viajar pra ela e visualizar.

    const AllAddress = () => {
      const navigation = useNavigation<PropsStack>();
    
      const renderItem: ListRenderItem<Address> = ({ item }) => (
        <AddressCard item={item} />
      );
    
      return (
        <>
          <Container>
            <DefaultTitle fontSize={18} title="TODOS OS ENDEREÇOS" />
            {Data.length <= 0 ? (
              <>
                <NoAdd>Você não tem endereços{"\\n"}cadastrados no momento</NoAdd>
                <DefaultButton
                  buttonText="Cadastrar Endereços"
                  buttonHandle={() => {
                    navigation.navigate("AddAddress");
                  }}
                  buttonType="secondary"
                  marginVertical={0}
                />
              </>
            ) : (
              <>
                <CreateAdd
                  onPress={() => {
                    navigation.navigate("AddAddress");
                  }}
                >
                  Cadastrar Endereços
                </CreateAdd>
                <FlatList
                  data={Data}
                  keyExtractor={(item: Address) => item._id}
                  renderItem={renderItem}
                  showsVerticalScrollIndicator={false}
                  contentContainerStyle={{ paddingBottom: 70 }}
                />
              </>
            )}
          </Container>
          <NavBar />
        </>
      );
    };
    
  6. Nós vamos agora poder acessar essa tela para visualizar se está com a base correta, basta ir em allAddress

  7. Agora a gente pode prosseguir.