Skip to content

Commit

Permalink
Merge pull request #336 from Team-Lecue/refactor/rooming
Browse files Browse the repository at this point in the history
Refactor/rooming
  • Loading branch information
Arooming authored May 12, 2024
2 parents b5a01dc + f374cac commit c7d3424
Show file tree
Hide file tree
Showing 16 changed files with 59 additions and 32 deletions.
25 changes: 14 additions & 11 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
import { Global, ThemeProvider } from '@emotion/react';
import styled from '@emotion/styled';
import { useEffect } from 'react';
import { useEffect, useState } from 'react';
import { QueryClient, QueryClientProvider } from 'react-query';

import Router from './Router';
import gStyle from './styles/GlobalStyles';
import theme from './styles/theme';

const queryClient = new QueryClient({
defaultOptions: {
queries: {
suspense: true,
useErrorBoundary: true,
retry: 0,
},
},
});

function App() {
const [queryClient] = useState(
() =>
new QueryClient({
defaultOptions: {
queries: {
suspense: true,
useErrorBoundary: true,
retry: 0,
},
},
}),
);

const setScreenSize = () => {
// vh 관련
const vh = window.innerHeight * 0.01;
Expand Down
2 changes: 1 addition & 1 deletion src/History/components/MyLecueBook/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ function MyLecueBook(props: LecueBookProps) {

const deleteBookMutation = useDeleteMyBook();
const postFavoriteMutation = usePostFavorite('mypage');
const deleteFavoriteMutation = useDeleteFavorite('myLecueBook');
const deleteFavoriteMutation = useDeleteFavorite('lecueBook');

const convertNoteCount = (noteNum: number) => {
setNoteCount(noteNum.toLocaleString());
Expand Down
3 changes: 2 additions & 1 deletion src/History/hooks/useDeleteMyBook.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { useMutation, useQueryClient } from 'react-query';
import { useNavigate } from 'react-router-dom';

import { QUERY_KEY } from '../../constants/queryKeys';
import { deleteMyBook } from '../api/deleteMyBook';

const useDeleteMyBook = () => {
Expand All @@ -12,7 +13,7 @@ const useDeleteMyBook = () => {
},
onError: () => navigate('/error'),
onSuccess: () => {
queryClient.refetchQueries(['get-my-lecueBook'], {
queryClient.refetchQueries(QUERY_KEY.favorite.getLecueBookFavorite, {
exact: true,
});
},
Expand Down
3 changes: 2 additions & 1 deletion src/History/hooks/useGetMyBookList.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { useQuery } from 'react-query';
import { useNavigate } from 'react-router-dom';

import { QUERY_KEY } from '../../constants/queryKeys';
import { getMyBookList } from '../api/getMyBookList';

export default function useGetMyBookList() {
const navigate = useNavigate();
const { data: myBookList, isLoading } = useQuery(
['get-my-lecueBook'],
QUERY_KEY.favorite.getLecueBookFavorite,
() => getMyBookList(),
{
onError: () => {
Expand Down
3 changes: 2 additions & 1 deletion src/History/hooks/useGetMyFavorite.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { useQuery } from 'react-query';
import { useNavigate } from 'react-router-dom';

import { QUERY_KEY } from '../../constants/queryKeys';
import { getMyFavorite } from '../api/getMyFavorite';

export default function useGetMyFavorite() {
const navigate = useNavigate();
const { data: myFavoriteList, isLoading } = useQuery(
['get-mypage-favorite'],
QUERY_KEY.favorite.getMypageFavorite,
() => getMyFavorite(),
{
onError: () => {
Expand Down
3 changes: 3 additions & 0 deletions src/Home/constants/homeQueryKey.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export const HOME_QUERY_KEY = {
getLecueBook: ['get-lecue-book'],
};
3 changes: 2 additions & 1 deletion src/Home/hooks/useGetLecueBook.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ import { useQuery } from 'react-query';
import { useNavigate } from 'react-router-dom';

import getLecueBook from '../api/getLecueBook';
import { HOME_QUERY_KEY } from '../constants/homeQueryKey';

const useGetLecueBook = () => {
const navigate = useNavigate();

const { isLoading: isLoadingLecueBook, data: lecueBook } = useQuery({
queryKey: ['get-lecue-book'],
queryKey: HOME_QUERY_KEY.getLecueBook,
queryFn: () => getLecueBook(),
onError: () => navigate('/error'),
refetchOnWindowFocus: false,
Expand Down
2 changes: 1 addition & 1 deletion src/LecueNote/hooks/usePostLecueNote.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ const usePostLecueNote = () => {
navigate(`/lecue-book/${bookUuid}`);
},
});
return mutation;
return { postMutation: mutation.mutate, isLoading: mutation.isLoading };
};

export default usePostLecueNote;
2 changes: 1 addition & 1 deletion src/LecueNote/hooks/usePutPresignedUrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const usePutPresignedUrl = () => {
},
onError: () => navigate('/error'),
});
return mutation;
return { putMutation: mutation.mutate, isLoading: mutation.isLoading };
};

export default usePutPresignedUrl;
13 changes: 8 additions & 5 deletions src/LecueNote/page/LeceuNotePage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@ function LecueNotePage() {
const MAX_LENGTH = 1000;
const navigate = useNavigate();
const location = useLocation();
const putMutation = usePutPresignedUrl();
const postMutation = usePostLecueNote();
const { putMutation } = usePutPresignedUrl();
const { postMutation } = usePostLecueNote();
const isMutationLoading =
usePutPresignedUrl().isLoading || usePostLecueNote().isLoading;

const noteContents = sessionStorage.getItem('noteContents');
const { bookId } = location.state || {};

Expand Down Expand Up @@ -84,14 +87,14 @@ function LecueNotePage() {
const handleClickCompleteModal = async () => {
if (lecueNoteState.imgToBinary) {
if (lecueNoteState.imgToBinary.result && lecueNoteState.file) {
putMutation.mutate({
putMutation({
presignedUrl: lecueNoteState.presignedUrl,
binaryFile: lecueNoteState.imgToBinary.result,
fileType: lecueNoteState.file.type,
});
}
}
postMutation.mutate({
postMutation({
contents: lecueNoteState.contents,
color: lecueNoteState.textColor,
fileName: lecueNoteState.filename,
Expand All @@ -103,7 +106,7 @@ function LecueNotePage() {
sessionStorage.setItem('noteContents', '');
};

return putMutation.isLoading || postMutation.isLoading ? (
return isMutationLoading ? (
<LoadingPage />
) : (
<S.Wrapper>
Expand Down
2 changes: 1 addition & 1 deletion src/components/common/LecueBook/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ function LecueBook(props: LecueBookProps) {

const navigate = useNavigate();

const deleteMypageMutation = useDeleteFavorite('favoriteBook');
const deleteMypageMutation = useDeleteFavorite('mypage');
const deleteHomeMutation = useDeleteFavorite('home');

const handleClickFavoriteBtn = (
Expand Down
10 changes: 10 additions & 0 deletions src/constants/queryKeys.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export const QUERY_KEY = {
favorite: {
getHomeFavorite: ['get-home-favorite'],
getMypageFavorite: ['get-mypage-favorite'],
getLecueBookFavorite: ['get-lecueBook-favorite'],
},
nickname: {
getNickName: ['get-nickname'],
},
};
13 changes: 7 additions & 6 deletions src/libs/hooks/useDeleteFavorite.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { useMutation, useQueryClient } from 'react-query';
import { useNavigate } from 'react-router-dom';

import { QUERY_KEY } from '../../constants/queryKeys';
import deleteFavorite from '../api/deleteFavorite';

const useDeleteFavorite = (state: string, bookUuid?: string) => {
Expand All @@ -10,19 +11,19 @@ const useDeleteFavorite = (state: string, bookUuid?: string) => {
const handleRefetchQueries = (state: string, bookUuid?: string) => {
switch (state) {
case 'home':
queryClient.refetchQueries(['get-favorite'], {
queryClient.refetchQueries(QUERY_KEY.favorite.getHomeFavorite, {
exact: true,
});
break;

case 'favoriteBook':
queryClient.refetchQueries(['get-mypage-favorite'], {
case 'mypage':
queryClient.refetchQueries(QUERY_KEY.favorite.getMypageFavorite, {
exact: true,
});
break;

case 'myLecueBook':
queryClient.refetchQueries(['get-my-lecueBook'], {
case 'lecueBook':
queryClient.refetchQueries(QUERY_KEY.favorite.getLecueBookFavorite, {
exact: true,
});
break;
Expand All @@ -41,7 +42,7 @@ const useDeleteFavorite = (state: string, bookUuid?: string) => {
},
onError: () => navigate('/error'),
onSuccess: () => {
handleRefetchQueries(state, bookUuid);
handleRefetchQueries(location, bookUuid);
},
});
return mutation.mutate;
Expand Down
3 changes: 2 additions & 1 deletion src/libs/hooks/useGetFavorite.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { useQuery } from 'react-query';
import { useNavigate } from 'react-router-dom';

import { QUERY_KEY } from '../../constants/queryKeys';
import getFavorite from '../api/getFavorite';

const useGetFavorite = () => {
const navigate = useNavigate();

const { isLoading: isLoadingFavorite, data: favorite } = useQuery({
queryKey: ['get-favorite'],
queryKey: QUERY_KEY.favorite.getHomeFavorite,
queryFn: () => getFavorite(),
onError: () => navigate('/error'),
refetchOnWindowFocus: false,
Expand Down
3 changes: 2 additions & 1 deletion src/libs/hooks/useGetMyNickname.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { useQuery } from 'react-query';
import { useNavigate } from 'react-router-dom';

import { QUERY_KEY } from '../../constants/queryKeys';
import { getMyNickName } from '../api/getMyNickName';

export default function useGetMyNickName() {
const navigate = useNavigate();
const { data: myNickName, isLoading } = useQuery(
['useGetMyNickName'],
QUERY_KEY.nickname.getNickName,
() => getMyNickName(),
{
onError: () => {
Expand Down
1 change: 1 addition & 0 deletions src/libs/hooks/usePostFavorite.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { useMutation, useQueryClient } from 'react-query';
import { useNavigate } from 'react-router-dom';

import { QUERY_KEY } from '../../constants/queryKeys';
import postFavorite from '../api/postFavorite';

const usePostFavorite = (state: string, bookUuid?: string) => {
Expand Down

0 comments on commit c7d3424

Please sign in to comment.