Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3374 | Rev 3432 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3416 stevensc 1
import React from "react";
2
import { useParams, useNavigate } from "react-router-dom";
3
import { useDispatch } from "react-redux";
3270 stevensc 4
 
3416 stevensc 5
import { useFetch, useHabits } from "@hooks";
6
import { editHabit } from "@services/habits/habits";
7
import { addNotification } from "@store/notification/notification.actions";
3270 stevensc 8
 
3416 stevensc 9
import PageHeader from "@components/common/page-header";
10
import LoadingWrapper from "@components/common/loading-wrapper";
11
import HabitForm from "@components/habits/habits/habit-form";
3270 stevensc 12
 
13
export default function EditHabitPage() {
3416 stevensc 14
  const { id } = useParams();
15
  const navigate = useNavigate();
16
  const dispatch = useDispatch();
3270 stevensc 17
 
3416 stevensc 18
  const { updateHabit, getHabitById } = useHabits();
19
  const currentHabit = getHabitById(id);
3270 stevensc 20
 
3416 stevensc 21
  const { data: habitValues, loading } = useFetch(
3270 stevensc 22
    currentHabit?.actions.link_edit
3416 stevensc 23
  );
3270 stevensc 24
 
25
  const onSubmit = async (habit) => {
26
    try {
3416 stevensc 27
      const response = await editHabit(currentHabit?.actions.link_edit, habit);
28
      dispatch(addNotification({ style: "success", msg: response.message }));
29
      updateHabit(response.data);
30
      navigate("/habits/habits");
3270 stevensc 31
    } catch (error) {
3416 stevensc 32
      dispatch(addNotification({ style: "danger", msg: error.message }));
3270 stevensc 33
    }
3416 stevensc 34
  };
3270 stevensc 35
 
36
  return (
37
    <>
3416 stevensc 38
      <PageHeader title="Editar hábito o competencia" goBack />
39
      <LoadingWrapper loading={loading}>
3270 stevensc 40
        <HabitForm onSubmit={onSubmit} values={habitValues} />
41
      </LoadingWrapper>
42
    </>
3416 stevensc 43
  );
3270 stevensc 44
}