Skip to content

Commit

Permalink
fix: /user/undefined 문제 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
wildcatco committed Aug 9, 2023
1 parent 297b609 commit 8c5cbaa
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/apis/hooks/users/useEditProfile.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default function useEditProfile() {
},
onSuccess: () => {
queryClient.refetchQueries({
queryKey: ['user'],
queryKey: ['userType'],
});
queryClient.refetchQueries({
queryKey: ['posts'],
Expand Down
30 changes: 23 additions & 7 deletions src/apis/hooks/users/useUser.tsx
Original file line number Diff line number Diff line change
@@ -1,38 +1,46 @@
import { useQuery } from '@tanstack/react-query';
import { useQuery, useQueryClient } from '@tanstack/react-query';

import { GetUserResponse } from '@/apis/dto/users/get-user';
import { GetUserTypeResponse } from '@/apis/dto/users/get-user-type';
import { axiosInstance } from '@/libs/axios';
import { User } from '@/types/user';
import { useEffect } from 'react';

export default function useUser(
{ enabled }: { enabled: boolean } = { enabled: true },
) {
const { data, error: userTypeError } = useQuery({
queryKey: ['user'],
const queryClient = useQueryClient();

const {
data,
error: userTypeError,
isSuccess,
} = useQuery({
queryKey: ['userType'],
queryFn: async () => {
const res = await axiosInstance.get<GetUserTypeResponse>('/user/type');
return res.data;
},
retry: false,
enabled,
refetchInterval: 60 * 1000,
});

const userId = data?.userId;

const {
data: userData,
isLoading,
error,
} = useQuery({
queryKey: ['user', data?.userId],
queryKey: ['user', userId],
queryFn: async () => {
const res = await axiosInstance.get<GetUserResponse>(
`/user/${data?.userId}`,
`/user/${userId || 'fuck'}`,
);
return res.data;
},
retry: 5,
enabled: !!data,
enabled: !!userId,
});

if (userTypeError) {
Expand Down Expand Up @@ -70,6 +78,14 @@ export default function useUser(
}
: null;

useEffect(() => {
if (isSuccess) {
queryClient.refetchQueries({
queryKey: ['user', data.userId],
});
}
}, [isSuccess]);

return {
user,
isLoading,
Expand Down

0 comments on commit 8c5cbaa

Please sign in to comment.