diff --git a/src/hooks/useAddNews.ts b/src/hooks/useAddNews.ts deleted file mode 100644 index 240921f1cbdf2cd1ee4a4221d6fa84129e499d6c..0000000000000000000000000000000000000000 --- a/src/hooks/useAddNews.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { News } from '../types/types'; -import useRequest from './useRequest'; -import useRestQueries from './useRestQueries'; - -const useAddNews = () => { - const { post } = useRestQueries(); - const request = post<News>('/api/v1/news'); - - return useRequest<News>({ request }); -}; - -export default useAddNews; diff --git a/src/hooks/useGetNewsList.ts b/src/hooks/useGetNewsList.ts deleted file mode 100644 index d129df721b72f138d455ab522332527346a65234..0000000000000000000000000000000000000000 --- a/src/hooks/useGetNewsList.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { News } from '../types/types'; -import useRequest from './useRequest'; -import useRestQueries from './useRestQueries'; - -const useGetNewsList = (data?: News[]) => { - const { get } = useRestQueries(); - const request = get<News[]>('/api/v1/news'); - - return useRequest<News[]>({ request, initialData: data }); -}; - -export default useGetNewsList; diff --git a/src/hooks/useRequest.ts b/src/hooks/useRequest.ts deleted file mode 100644 index 6e41e58f6add946cf3015c953537ab50a9879353..0000000000000000000000000000000000000000 --- a/src/hooks/useRequest.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { useCallback, useEffect, useState } from 'react'; -import { Refetch, RequestArgs, ResponseData } from './types'; - -function useRequest<T = any>({ request, initialData }: RequestArgs<T>): [ResponseData<T>, Refetch] { - const [data, setData] = useState(initialData); - const [isLoading, setIsLoading] = useState(false); - const [isError, setIsError] = useState(false); - const [fetching, setFetching] = useState(false); - const [requestParams, setRequestParams] = useState({}); - - const refetch = useCallback((newParams?) => { - setRequestParams(newParams ?? {}); - setFetching(true); - }, []); - - useEffect(() => { - const fetchData = async () => { - setIsError(false); - setIsLoading(true); - - try { - const result = await request(requestParams); - - setData(result.data); - } catch (error) { - setIsError(true); - } - setFetching(false); - setIsLoading(false); - }; - - if (fetching && !isLoading) { - fetchData(); - } - }, [request, fetching, isLoading, requestParams]); - - return [{ data, isLoading, isError }, refetch]; -} - -export default useRequest; diff --git a/src/hooks/useRestQueries.ts b/src/hooks/useRestQueries.ts deleted file mode 100644 index 3b91a068b9f7b4bf32667fbaee378c329c095f8c..0000000000000000000000000000000000000000 --- a/src/hooks/useRestQueries.ts +++ /dev/null @@ -1,20 +0,0 @@ -import axios, { AxiosRequestConfig } from 'axios'; -import { ApiRequest, RequestParams } from './types'; - -function useRestQueries( - // When a request needs more config like CancelToken, etc. - config?: AxiosRequestConfig, -): Record<string, <Data>(path: string) => ApiRequest<Data>> { - return { - get: <Data>(path: string) => (params: RequestParams) => - axios.get<Data>(path, { ...config, ...params }), - post: <Data>(path: string) => (params: RequestParams) => - axios.post<Data>(path, params.body ?? {}, { ...config, ...params }), - put: <Data>(path: string) => (params: RequestParams) => - axios.put<Data>(path, params.body ?? {}, { ...config, ...params }), - delete: (path: string) => (params: RequestParams) => - axios.delete(path, { ...config, ...params }), - }; -} - -export default useRestQueries;