diff --git a/src/api/rooms/getRoomDetail.ts b/src/api/rooms/getRoomDetail.ts index 123c480a..079a862f 100644 --- a/src/api/rooms/getRoomDetail.ts +++ b/src/api/rooms/getRoomDetail.ts @@ -1,4 +1,5 @@ import { apiClient } from '../index'; +import { AxiosError } from 'axios'; // 방 상세 정보 응답 타입 export interface RoomDetailResponse { @@ -42,17 +43,19 @@ export const getRoomDetail = async (roomId: number): Promise try { const response = await apiClient.get(`/rooms/${roomId}/recruiting`); return response.data; - } catch (error: any) { + } catch (error: unknown) { console.error('방 상세 정보 조회 API 오류:', error); - // 모집기간이 만료된 방인 경우 - if (error.response?.data?.code === 100004) { - throw new Error('모집기간이 만료된 방입니다.'); - } - - // 방 접근 권한이 없는 경우 - if (error.response?.data?.code === 140011) { - throw new Error('방 접근 권한이 없습니다.'); + if (error instanceof AxiosError) { + // 모집기간이 만료된 방인 경우 + if (error.response?.data?.code === 100004) { + throw new Error('모집기간이 만료된 방입니다.'); + } + + // 방 접근 권한이 없는 경우 + if (error.response?.data?.code === 140011) { + throw new Error('방 접근 권한이 없습니다.'); + } } throw error; diff --git a/src/api/rooms/getRoomMembers.ts b/src/api/rooms/getRoomMembers.ts index b7212013..50f136be 100644 --- a/src/api/rooms/getRoomMembers.ts +++ b/src/api/rooms/getRoomMembers.ts @@ -1,4 +1,5 @@ import { apiClient } from '../index'; +import { AxiosError } from 'axios'; export interface RoomMember { userId: number; @@ -47,11 +48,11 @@ export const getRoomMembers = async (roomId: number): Promise(`/rooms/${roomId}/users`); return response.data; - } catch (error: any) { + } catch (error: unknown) { console.error('독서메이트 조회 API 오류:', error); // 방 접근 권한이 없는 경우 - if (error.response?.data?.code === 140011) { + if (error instanceof AxiosError && error.response?.data?.code === 140011) { throw new Error('방 접근 권한이 없습니다.'); } diff --git a/src/api/rooms/getRoomPlaying.ts b/src/api/rooms/getRoomPlaying.ts index 1d2fa5fa..d21d0c72 100644 --- a/src/api/rooms/getRoomPlaying.ts +++ b/src/api/rooms/getRoomPlaying.ts @@ -1,4 +1,5 @@ import { apiClient } from '../index'; +import { AxiosError } from 'axios'; // 투표 아이템 타입 export interface VoteItem { @@ -65,11 +66,11 @@ export const getRoomPlaying = async (roomId: number): Promise(`/rooms/${roomId}/playing`); return response.data; - } catch (error: any) { + } catch (error: unknown) { console.error('진행중인 방 상세 정보 조회 API 오류:', error); // 방 접근 권한이 없는 경우 - if (error.response?.data?.code === 140011) { + if (error instanceof AxiosError && error.response?.data?.code === 140011) { throw new Error('방 접근 권한이 없습니다.'); } diff --git a/src/components/group/CommentSection.styled.ts b/src/components/group/CommentSection.styled.ts index aac581d0..d1e96aab 100644 --- a/src/components/group/CommentSection.styled.ts +++ b/src/components/group/CommentSection.styled.ts @@ -11,6 +11,11 @@ export const CommentSection = styled.section` padding: 16px 12px; border-radius: 12px; cursor: pointer; + + &:focus-visible { + outline: 2px solid ${colors.purple.main}; + outline-offset: 2px; + } `; export const CommentSectionHeader = styled.div` diff --git a/src/pages/groupDetail/GroupDetail.tsx b/src/pages/groupDetail/GroupDetail.tsx index e202a61a..b44550ce 100644 --- a/src/pages/groupDetail/GroupDetail.tsx +++ b/src/pages/groupDetail/GroupDetail.tsx @@ -97,17 +97,17 @@ const GroupDetail = () => { } else { setError(response.message); } - } catch (error: any) { + } catch (error: unknown) { console.error('방 상세 정보 조회 실패:', error); // 모집기간이 만료된 방인 경우 - 진행중인 방으로 리다이렉트 - if (error.message === '모집기간이 만료된 방입니다.') { + if (error instanceof Error && error.message === '모집기간이 만료된 방입니다.') { navigate(`/group/detail/joined/${roomId}`, { replace: true }); return; } // 방 접근 권한이 없는 경우 - 모임 홈으로 리다이렉트 - if (error.message === '방 접근 권한이 없습니다.') { + if (error instanceof Error && error.message === '방 접근 권한이 없습니다.') { navigate('/group', { replace: true }); return; } diff --git a/src/pages/groupDetail/ParticipatedGroupDetail.tsx b/src/pages/groupDetail/ParticipatedGroupDetail.tsx index 9be1d572..38f35343 100644 --- a/src/pages/groupDetail/ParticipatedGroupDetail.tsx +++ b/src/pages/groupDetail/ParticipatedGroupDetail.tsx @@ -74,11 +74,11 @@ const ParticipatedGroupDetail = () => { } else { setError(response.message); } - } catch (err: any) { + } catch (err: unknown) { console.error('방 상세 정보 조회 오류:', err); // 방 접근 권한이 없는 경우 - 모임 홈으로 리다이렉트 - if (err.message === '방 접근 권한이 없습니다.') { + if (err instanceof Error && err.message === '방 접근 권한이 없습니다.') { navigate('/group', { replace: true }); return; } diff --git a/src/pages/groupMembers/GroupMembers.tsx b/src/pages/groupMembers/GroupMembers.tsx index 0eb988e3..c429263a 100644 --- a/src/pages/groupMembers/GroupMembers.tsx +++ b/src/pages/groupMembers/GroupMembers.tsx @@ -42,11 +42,11 @@ const GroupMembers = () => { } else { setError(response.message); } - } catch (err: any) { + } catch (err: unknown) { console.error('독서메이트 조회 오류:', err); // 방 접근 권한이 없는 경우 - 모임 홈으로 리다이렉트 - if (err.message === '방 접근 권한이 없습니다.') { + if (err instanceof Error && err.message === '방 접근 권한이 없습니다.') { navigate('/group', { replace: true }); return; }