From a5c7950b65652d105c8eff22d14aeeacade6d31f Mon Sep 17 00:00:00 2001 From: eug-vs Date: Mon, 10 Aug 2020 11:32:13 +0300 Subject: feat: useSWR for feedbacks --- src/containers/Home/Home.tsx | 14 ++++---------- src/hooks/APIClient.ts | 4 ++++ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/containers/Home/Home.tsx b/src/containers/Home/Home.tsx index 73fa479..203b380 100644 --- a/src/containers/Home/Home.tsx +++ b/src/containers/Home/Home.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { useHistory } from 'react-router-dom'; import { Typography, @@ -14,7 +14,7 @@ import { Rating } from '@material-ui/lab'; import { Feedback } from 'which-types'; import { useAuth } from '../../hooks/useAuth'; -import { get } from '../../requests'; +import { useFeedback } from '../../hooks/APIClient'; import ReviewCard from '../../components/ReviewCard/ReviewCard'; import ReviewForm from './ReviewForm'; @@ -41,7 +41,7 @@ const useStyles = makeStyles(theme => ({ })); const Home: React.FC = () => { - const [feedbacks, setFeedbacks] = useState([]); + const { data: feedbacks } = useFeedback(); const classes = useStyles(); const history = useHistory(); const { isAuthenticated, user } = useAuth(); @@ -53,12 +53,6 @@ const Home: React.FC = () => { 0 ) / feedbacks.length; - useEffect(() => { - get('/feedback').then(response => { - setFeedbacks(response.data); - }); - }, []); - const handleLetsGo = () => { history.push('/feed'); }; @@ -76,7 +70,7 @@ const Home: React.FC = () => { const Reviews = (
- {feedbacks.map(feedback => )} + {feedbacks.map((feedback: Feedback) => )}
); diff --git a/src/hooks/APIClient.ts b/src/hooks/APIClient.ts index 7f7d170..59bf4fc 100644 --- a/src/hooks/APIClient.ts +++ b/src/hooks/APIClient.ts @@ -23,3 +23,7 @@ export const useProfile = (id: string) => { export const useFeed = () => { return useSWR('/feed', fetcher, arrayOptions); }; + +export const useFeedback = () => { + return useSWR('/feedback', fetcher, arrayOptions); +}; -- cgit v1.2.3