Advertisement
ebleach7

Untitled

Apr 18th, 2024
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { faqServie } from "@/shared/api";
  2. import { removeToken } from "@/shared/lib";
  3. import { useQuery } from "@tanstack/react-query";
  4. import { App } from "antd";
  5. import axios from "axios";
  6. import { useEffect } from "react";
  7. import { useNavigate } from "react-router-dom";
  8.  
  9. export const useGetFaqItem = (id: string) => {
  10.   const { notification } = App.useApp();
  11.   const navigate = useNavigate();
  12.  
  13.   const faqItem = useQuery({
  14.     queryKey: ["faq", id],
  15.     queryFn: () => faqServie.getFaqItem(id),
  16.   });
  17.  
  18.   useEffect(() => {
  19.     if (faqItem.isError) {
  20.       if (faqItem.error) {
  21.         if (axios.isAxiosError(faqItem.error)) {
  22.           notification.error({
  23.             message: faqItem.error.message,
  24.           });
  25.  
  26.           if (faqItem.error.response && faqItem.error.response.status === 401) {
  27.             navigate("/sign-in");
  28.           }
  29.  
  30.           if (faqItem.error.response && faqItem.error.response.status === 400) {
  31.             navigate("/faq");
  32.           }
  33.         } else {
  34.           notification.error({
  35.             message: faqItem.error.message
  36.               ? faqItem.error.message
  37.               : "Что то пошло не так!",
  38.           });
  39.  
  40.           removeToken();
  41.           navigate("/sign-in");
  42.  
  43.           console.log("Faq Item Error", faqItem.error);
  44.         }
  45.       }
  46.     }
  47.   }, [faqItem, navigate, notification]);
  48.  
  49.   return { faqItem };
  50. };
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement