From 566e56a9ea2bfd4a3eb799820f179f4e8dbefbd9 Mon Sep 17 00:00:00 2001 From: Chung-il Jung Date: Sat, 14 Sep 2024 15:23:41 +0900 Subject: [PATCH] feat: tanstack query v5 --- bun.lockb | Bin 183887 -> 184690 bytes package.json | 1 + src/main.tsx | 35 ++++++++--------- src/pages/Notice.tsx | 88 +++++++++++++++++++++---------------------- 4 files changed, 62 insertions(+), 62 deletions(-) diff --git a/bun.lockb b/bun.lockb index 6dbb154b63177ac28b3ee9246a310e070d36de1d..1ea2ba509491f5ffc64a78545eb89ec85ec9d2c3 100755 GIT binary patch delta 34083 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 In>*!y0Y)DaRf3GQ&U>$63UX& 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 SWpg#V+NAd8lfBgEpZs40aqkoW diff --git a/package.json b/package.json index 5b93ec5..0248823 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", "@mui/material": "^6.0.1", + "@tanstack/react-query": "^5.56.2", "axios": "^1.7.5", "jwt-decode": "^3.1.2", "react": "^18.3.1", diff --git a/src/main.tsx b/src/main.tsx index 0970e7c..32180e8 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,13 +1,19 @@ import './styles/globalStyle.css'; +import { + QueryClient as QueryClient5, + QueryClientProvider as QueryClientProvider5, +} from '@tanstack/react-query'; import axios from 'axios'; import AsyncBoundary from 'components/AsyncBoundary'; -import { CACHE_TIME } from 'constants/cacheTime'; import { BadGateway } from 'pages'; import React from 'react'; import ReactDOM from 'react-dom/client'; import { initialize } from 'react-ga'; -import { QueryClient, QueryClientProvider } from 'react-query'; +import { + QueryClient as QueryClient4, + QueryClientProvider as QueryClientProvider4, +} from 'react-query'; import { ReactQueryDevtools } from 'react-query/devtools'; import { RecoilRoot } from 'recoil'; @@ -15,15 +21,8 @@ import App from './App'; initialize('G-KG7KQ8K3GP'); -export const queryClient = new QueryClient({ - defaultOptions: { - queries: { - refetchOnWindowFocus: false, - cacheTime: CACHE_TIME.MINUTE_5, - staleTime: CACHE_TIME.MINUTE_5, - }, - }, -}); +export const queryClient = new QueryClient4(); +const queryClient5 = new QueryClient5(); const PROXY_URL = window.location.hostname === 'localhost' ? '/api' : '/proxy'; axios.defaults.baseURL = PROXY_URL; @@ -32,12 +31,14 @@ axios.defaults.withCredentials = true; ReactDOM.createRoot(document.getElementById('root')!).render( } rejectedFallback={() => }> - - - - - - + + + + + + + + , ); diff --git a/src/pages/Notice.tsx b/src/pages/Notice.tsx index 04fcf5d..09455ed 100644 --- a/src/pages/Notice.tsx +++ b/src/pages/Notice.tsx @@ -1,70 +1,66 @@ import styled from '@emotion/styled'; +import { useInfiniteQuery } from '@tanstack/react-query'; import { Notice as Notices } from 'api'; import { Spinner } from 'components'; -import { Fragment, useEffect } from 'react'; +import { useEffect } from 'react'; import { useInView } from 'react-intersection-observer'; -import { useInfiniteQuery } from 'react-query'; import { useNavigate } from 'react-router-dom'; -import { type NoticeItem } from 'types/notice'; -const Item = ({ notice }: { notice: NoticeItem }) => { +const Notice = () => { const navigate = useNavigate(); - const toDetail = () => navigate(`/notice/detail?id=${notice.id}`); - - return ( - - {notice.title} - - - ); -}; - -export const NoticeContainer = () => { const notice = Notices(); const { ref, inView } = useInView(); - const { data, isLoading, fetchNextPage, isFetchingNextPage } = useInfiniteQuery( - ['notice'], - () => notice.list(), - { - getNextPageParam: (lastPage) => { - if (lastPage && !lastPage.isLast) return lastPage.nextPage; - }, + + const { data, isLoading, fetchNextPage, isFetchingNextPage } = useInfiniteQuery({ + queryKey: ['notice'], + queryFn: () => notice.list(), + getNextPageParam: (lastPage) => { + if (lastPage && !lastPage.isLast) return lastPage.nextPage; + + return undefined; }, - ); + initialData: undefined, + initialPageParam: 1, + }); + useEffect(() => { if (inView) { fetchNextPage(); } }, [inView, fetchNextPage]); - if (isLoading || data === undefined) return ; - if (data.pages.length === 0) return 아직 공지사항이 없어요.; - return ( - <> - {data.pages.map((page, index) => ( - - {page?.data.data.map((notice) => )} - - ))} -
- {isFetchingNextPage ? : null} -
- - ); -}; - -const Notice = () => { return ( 공지사항 - + {isLoading || data === undefined ? ( + + ) : data.pages.length === 0 ? ( + 아직 공지사항이 없어요. + ) : ( + + {data.pages.map((page) => + page?.data.data.map((notice) => ( + navigate(`/notice/detail?id=${notice.id}`)} + > + {notice.title} + + + )), + )} +
  • + {isFetchingNextPage ? : null} +
  • +
    + )}
    ); }; export default Notice; -const AppContainer = styled.div` +const AppContainer = styled.section` display: flex; flex-direction: column; align-items: center; @@ -85,7 +81,6 @@ const AppTitle = styled.div` display: flex; width: 100%; font-size: 1.5rem; - font-weight: 600; padding-top: 5rem; padding-bottom: 1rem; @@ -102,11 +97,14 @@ const Option = styled.div` padding: 0.5rem 0; font-size: 0.8rem; color: #a3a3a3; - font-weight: 300; `; -const NoticeWrap = styled.div` +const NoticeUl = styled.ul` + width: 100%; +`; + +const NoticeWrap = styled.li` width: 100%; border: 1.5px solid #f1f1f1; padding: 1.5rem 1.5rem;