Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FE] useSelectedFeedbackData 훅 오류 해결(#783) #784

Merged
merged 7 commits into from
Nov 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions frontend/src/@types/feedback.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { NonEmptyArray } from "@/@types/NonEmptyArray";

export type FeedbackType = "받은 피드백" | "쓴 피드백";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이것도 타입정리를 한번 해야겠다 생각했었는데, 말 안해도 딱 잘 해주셔서 감사합니다~

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useSelectedFeedbackData에 있던 타입이라 바로 분리했습니다ㅎㅎㅎ 감사합니다😊


export interface FeedbackCardDataList {
readonly roomId: number;
readonly title: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { useNavigate } from "react-router-dom";
import { FeedbackType } from "@/hooks/feedback/useSelectedFeedbackData";
import Button from "@/components/common/button/Button";
import Profile from "@/components/common/profile/Profile";
import { Textarea } from "@/components/common/textarea/Textarea";
import EvaluationPointBar from "@/components/feedback/evaluationPointBar/EvaluationPointBar";
import * as S from "@/components/feedback/feedbackCard/FeedbackCard.style";
import { FeedbackCardData } from "@/@types/feedback";
import { FeedbackCardData, FeedbackType } from "@/@types/feedback";
import { ReviewInfo } from "@/@types/review";
import { HoverStyledLink } from "@/styles/common";
import { theme } from "@/styles/theme";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,6 @@ export const Default: Story = {
],
selectedFeedback: 0,
handleSelectedFeedback: () => {},
handleDeselectedFeedback: () => {},
},
};
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import React from "react";
import { FeedbackType } from "@/hooks/feedback/useSelectedFeedbackData";
import Carousel from "@/components/common/carousel/Carousel";
import Label from "@/components/common/label/Label";
import FeedbackCard from "@/components/feedback/feedbackCard/FeedbackCard";
import * as S from "@/components/feedback/feedbackCardList/FeedbackCardList.style";
import { FeedbackCardDataList } from "@/@types/feedback";
import { FeedbackCardDataList, FeedbackType } from "@/@types/feedback";
import { defaultCharacter } from "@/assets";
import { HoverStyledLink } from "@/styles/common";
import { theme } from "@/styles/theme";
Expand All @@ -14,14 +13,20 @@ interface FeedbackCardListProps {
feedbackData: FeedbackCardDataList[];
selectedFeedback: number | undefined;
handleSelectedFeedback: (roomId: number) => void;
handleDeselectedFeedback: () => void;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

뜬금없지만 DeSelected 가 처음에는 없는 단어인줄 알았는데 실제로 사용되는 단어였네요!

하나 배워갑니당

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 저 단어 처음 보는데 gpt가 선택 해제할 때 쓰는 단어라고 알려줘서 사용했습니다ㅎㅅㅎ

}

const FeedbackCardList = ({
selectedFeedbackType,
feedbackData,
selectedFeedback,
handleSelectedFeedback,
handleDeselectedFeedback,
}: FeedbackCardListProps) => {
const toggleFeedbackSelection = (roomId: number) => {
roomId === selectedFeedback ? handleDeselectedFeedback() : handleSelectedFeedback(roomId);
};

Comment on lines +26 to +29
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이렇게 수정되니 좋네요!

if (feedbackData.length === 0) {
return (
<S.EmptyContainer>
Expand All @@ -42,14 +47,14 @@ const FeedbackCardList = ({
<React.Fragment key={feedback.roomId}>
<S.FeedbackMissionWrapper
$isSelected={selectedFeedback === feedback.roomId}
onClick={() => handleSelectedFeedback(feedback.roomId)}
onClick={() => toggleFeedbackSelection(feedback.roomId)}
role="listitem"
aria-expanded={selectedFeedback === feedback.roomId}
tabIndex={0}
onKeyDown={(e) => {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
handleSelectedFeedback(feedback.roomId);
toggleFeedbackSelection(feedback.roomId);
}
}}
aria-label={`${feedbackData.length}개의 미션 중 ${index + 1}번째 미션입니다.`}
Expand Down
14 changes: 7 additions & 7 deletions frontend/src/hooks/feedback/useSelectedFeedbackData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import {
useFetchDeliveredFeedback,
useFetchReceivedFeedback,
} from "@/hooks/queries/useFetchFeedback";

export type FeedbackType = "받은 피드백" | "쓴 피드백";
import { FeedbackType } from "@/@types/feedback";

const useSelectedFeedbackData = (initialFeedbackType: FeedbackType = "받은 피드백") => {
const [selectedFeedbackType, setSelectedFeedbackType] = useState<FeedbackType>(() => {
Expand All @@ -24,15 +23,15 @@ const useSelectedFeedbackData = (initialFeedbackType: FeedbackType = "받은 피
};

const handleSelectedFeedback = (roomId: number) => {
if (selectedFeedback === roomId) {
setSelectedFeedback(undefined);
sessionStorage.removeItem("selectedFeedback");
return;
}
setSelectedFeedback(roomId);
sessionStorage.setItem("selectedFeedback", roomId.toString());
};

const handleDeselectedFeedback = () => {
setSelectedFeedback(undefined);
sessionStorage.removeItem("selectedFeedback");
};

const { data: receivedFeedbacks } = useFetchReceivedFeedback(
selectedFeedbackType === "받은 피드백",
);
Expand All @@ -48,6 +47,7 @@ const useSelectedFeedbackData = (initialFeedbackType: FeedbackType = "받은 피
handleSelectedFeedbackType,
selectedFeedback,
handleSelectedFeedback,
handleDeselectedFeedback,
selectedFeedbackData,
};
};
Expand Down
2 changes: 0 additions & 2 deletions frontend/src/hooks/queries/useFetchAlarm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ export const useFetchAlarmCount = (enabled: boolean = false) => {
queryFn: getAlarmCount,
enabled,
refetchInterval: 60 * 1000,
refetchIntervalInBackground: false,
});
};

Expand All @@ -23,6 +22,5 @@ export const useFetchAlarmList = () => {
return result;
},
refetchInterval: 60 * 1000,
refetchIntervalInBackground: false,
});
};
7 changes: 5 additions & 2 deletions frontend/src/mocks/handler/alaramHandler.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
import { HttpResponse, http } from "msw";
import { API_ENDPOINTS } from "@/apis/endpoints";
import { serverUrl } from "@/config/serverUrl";
import alarmcount from "@/mocks/mockResponse/alarmCount.json";
import alarmCount from "@/mocks/mockResponse/alarmCount.json";
import alarmInfos from "@/mocks/mockResponse/alarmInfos.json";

const alarmHandler = [
http.get(serverUrl + API_ENDPOINTS.ALARM_COUNT, () => {
return HttpResponse.json(alarmcount, { status: 200 });
return HttpResponse.json(alarmCount, { status: 200 });
}),
http.get(serverUrl + API_ENDPOINTS.ALARM_LIST, () => {
return HttpResponse.json(alarmInfos, { status: 200 });
}),
http.post(serverUrl + API_ENDPOINTS.ALARM_CHECKED, () => {
return HttpResponse.json({ alarmId: 1, alarmType: "USER" }, { status: 200 });
}),
];

export default alarmHandler;
2 changes: 2 additions & 0 deletions frontend/src/pages/feedback/FeedbackPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const FeedbackPage = () => {
handleSelectedFeedbackType,
selectedFeedback,
handleSelectedFeedback,
handleDeselectedFeedback,
selectedFeedbackData,
} = useSelectedFeedbackData();

Expand All @@ -27,6 +28,7 @@ const FeedbackPage = () => {
feedbackData={selectedFeedbackData}
selectedFeedback={selectedFeedback}
handleSelectedFeedback={handleSelectedFeedback}
handleDeselectedFeedback={handleDeselectedFeedback}
/>
</>
);
Expand Down