Nós vamos agora modificar o momento de atualização do hábito, pois quando a pessoa for atualizar o hábito, caso ela desative o hábito, ele deve ser excluído.
Nós vamos em “HabitPage” na nossa função “handleUpdateHabit”, nessa função já temos até com comentários nossas divisões. Nós vamos estar “Pages → HabitPage → index.jsx”
function handleUpdateHabit() {
if (notificationToggle === true && !dayNotification && !timeNotification) {
Alert.alert("Você precisa colocar a frequência e horário da notificação");
} else {
HabitsService.updateHabit({
habitArea: habit?.habitArea,
habitName: habitInput,
habitFrequency: frequencyInput,
habitHasNotification: notificationToggle,
habitNotificationFrequency: dayNotification,
habitNotificationTime: timeNotification,
habitNotificationId: notificationToggle ? habitInput : null,
}).then(() => {
Alert.alert("Sucesso na atualização do hábito");
if (!notificationToggle) {
NotificationService.deleteNotification(habit?.habitName);
} else {
NotificationService.deleteNotification(habit?.habitName);
NotificationService.createNotification(
habitInput,
frequencyInput,
dayNotification,
timeNotification
);
}
navigation.navigate("Home", {
updatedHabit: `Updated in ${habit?.habitArea}`,
});
});
}
}
Com isso feito, nós vamos conseguir deletar o hábito caso a pessoa desative a função, e caso ela atualize para outro habitName, por exemplo, ele vai deletar o antigo e criar um novo, fazendo assim a atualização do nosso identificador da notificação.