1. Nós vamos agora entrar na parte final do código, manipulando a barra de progresso que temos e também as nossas imagens de acordo com os hábitos. Vamos começar pela criação do hábito, nós vamos criar ele com a barra de progresso em 1, que é o 100% da lib.

  2. Nós vamos então no arquivo “statusBar”, que fica dentro de home dos components. Nós vamos deixar a barra de progreesso 0, enquanto o hábito não foi criado, e quando ele for criado nós vamos deixar ele em 1, que é o nosso 100. “Src → Components → Home → StatusBar → index.jsx”

  3. Nós vamos receber via props 4 parâmetros, que será o progress bar de cada habito, e vamos colocar eles dentro de progress. Se tiver um número ele vai aceitar o número, e se for um null, ele vai apenas deixar como se fosse o 0, ou seja, quando não tiver hábito, ele vai ficar como 0.

    import React from "react";
    import { View, StyleSheet, Image } from "react-native";
    
    import { ProgressBar } from "react-native-paper";
    
    export default function StatusBar({
      mindHabit,
      moneyHabit,
      bodyHabit,
      funHabit,
    }) {
      return (
        <View style={styles.container}>
          <View style={styles.statusBarContainer}>
            <Image
              source={require("../../../assets/icons/educationIcon.png")}
              style={styles.icon}
            />
            <ProgressBar
              progress={mindHabit}
              color={"#90B7F3"}
              style={styles.progress}
            />
          </View>
          <View style={styles.statusBarContainer}>
            <Image
              source={require("../../../assets/icons/moneyIcon.png")}
              style={styles.icon}
            />
            <ProgressBar
              progress={moneyHabit}
              color={"#85BB65"}
              style={styles.progress}
            />
          </View>
          <View style={styles.statusBarContainer}>
            <Image
              source={require("../../../assets/icons/bodyIcon.png")}
              style={styles.icon}
            />
            <ProgressBar
              progress={bodyHabit}
              color={"#FF0043"}
              style={styles.progress}
            />
          </View>
          <View style={styles.statusBarContainer}>
            <Image
              source={require("../../../assets/icons/funIcon.png")}
              style={styles.icon}
            />
            <ProgressBar
              progress={funHabit}
              color={"#FE7F23"}
              style={styles.progress}
            />
          </View>
        </View>
      );
    }
    
    const styles = StyleSheet.create({
      container: {
        padding: 20,
        backgroundColor: "#151515",
        borderRadius: 10,
        marginTop: 10,
        marginBottom: 10,
      },
      statusBarContainer: {
        flexDirection: "row",
        alignItems: "center",
        marginVertical: 6,
      },
      progress: {
        borderRadius: 10,
        width: 250,
        height: 8,
      },
      icon: {
        width: 25,
        height: 25,
        marginRight: 5,
      },
    });
    
  4. Agora, precisamos ir para a home, pois será lá que vamos passar esses progressBar “Src → Pages → Home → index.jsx”

    // ... outros códigos
    
    return (
      <View style={styles.container}>
        <ScrollView>
          <View style={{ alignItems: "center" }}>
            <Text style={styles.dailyChecks}>
              ❤️ {robotDaysLife} {robotDaysLife === "01" ? "dia" : "dias"} - ✔️ 80
              Checks
            </Text>
    
            <LifeStatus />
    
            <StatusBar
              mindHabit={mindHabit?.progressBar}
              moneyHabit={moneyHabit?.progressBar}
              bodyHabit={bodyHabit?.progressBar}
              funHabit={funHabit?.progressBar}
            />
    
    // ... outros códigos
    
  5. Agora nós podemos testar, deixando um hábito criado e os demais vazios, vamos ver a mudança.