index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { useState, useEffect } from "react";
  2. import toastError from "../../errors/toastError";
  3. import api from "../../services/api";
  4. const useMessages = ({ fromMe, dateStart, dateEnd }) => {
  5. const [loading, setLoading] = useState(true);
  6. const [count, setCount] = useState(0);
  7. useEffect(() => {
  8. setLoading(true);
  9. const delayDebounceFn = setTimeout(() => {
  10. const fetchMessages = async () => {
  11. try {
  12. const { data } = await api.get("/messages-allMe", {
  13. params: {
  14. fromMe,
  15. dateStart,
  16. dateEnd,
  17. },
  18. });
  19. setCount(data.count[0].count);
  20. setLoading(false);
  21. } catch (err) {
  22. setLoading(false);
  23. toastError(err);
  24. }
  25. };
  26. fetchMessages();
  27. }, 500);
  28. return () => clearTimeout(delayDebounceFn);
  29. }, [dateStart, dateEnd]);
  30. return { count };
  31. };
  32. export default useMessages;