-
-
+
+ >
);
};
diff --git a/frontend/components/interview/InterviewerList.tsx b/frontend/components/interview/InterviewerList.tsx
new file mode 100644
index 00000000..8114a0b2
--- /dev/null
+++ b/frontend/components/interview/InterviewerList.tsx
@@ -0,0 +1,74 @@
+"use client";
+
+import { useQuery } from "@tanstack/react-query";
+import useInterviewerPaginationParams from "../../src/hooks/interview/useInterviewerPaginationParams";
+import { getInterviewRecordByPageWithOrder } from "../../src/apis/interview";
+import InterviewBoard from "./Board";
+import InterviewPageNavbar from "./PageNavbar";
+import LoadingSpinner from "../common/LoadingSpinner";
+import { removeAll } from "../../src/functions/replacer";
+import { CHARACTERS } from "../../src/constants";
+
+interface InterviewerListProps {
+ generation: string;
+}
+
+const InterviewerList = ({ generation }: InterviewerListProps) => {
+ const { pageIndex, order, searchKeyword } = useInterviewerPaginationParams();
+
+ const { data: interview, status } = useQuery({
+ queryKey: [
+ "allInterviewRecord",
+ { pageIndex, order, generation, searchKeyword },
+ ],
+ queryFn: () =>
+ getInterviewRecordByPageWithOrder({
+ page: +pageIndex,
+ order: order,
+ year: generation,
+ searchKeyword,
+ }),
+ });
+
+ if (status === "loading") {
+ return (
+
+ );
+ }
+
+ if (status === "error") {
+ return
에러가 발생하였습니다. 잠시 후 다시 시도해보세요.
;
+ }
+
+ const interviewRecords = interview.records.map((value) => {
+ return {
+ id: value.applicantId,
+ title: value.name,
+ subElements: [
+ removeAll(value.field1, CHARACTERS.DOUBLE_QUOTE).concat(
+ CHARACTERS.SLASH,
+ removeAll(value.field2, CHARACTERS.DOUBLE_QUOTE)
+ ),
+ removeAll(value.grade, CHARACTERS.DOUBLE_QUOTE).concat(
+ CHARACTERS.SPACE,
+ removeAll(value.semester, CHARACTERS.DOUBLE_QUOTE)
+ ),
+ ],
+ passState: value.state.passState,
+ };
+ });
+
+ return (
+ <>
+
+
+ >
+ );
+};
+
+export default InterviewerList;
diff --git a/frontend/components/interview/PageNavbar.tsx b/frontend/components/interview/PageNavbar.tsx
index 5228fcfe..77821464 100644
--- a/frontend/components/interview/PageNavbar.tsx
+++ b/frontend/components/interview/PageNavbar.tsx
@@ -1,59 +1,28 @@
"use client";
-import { useQuery } from "@tanstack/react-query";
import PageNavbarComponent from "../common/PageNavbar.component";
-import { useSearchParams } from "next/navigation";
-import { getInterviewRecordByPageWithOrder } from "@/src/apis/interview";
-import { ORDER_MENU } from "@/src/constants";
-import { useSearchQuery } from "@/src/hooks/useSearchQuery";
import { useCreateQueryString } from "@/src/hooks/useCreateQueryString";
+import useInterviewerPaginationParams from "../../src/hooks/interview/useInterviewerPaginationParams";
type InterviewPageNavbarProps = {
+ maxPage: number;
generation: string;
};
-const InterviewPageNavbar = ({ generation }: InterviewPageNavbarProps) => {
- const searchParams = useSearchParams();
- const pageIndex = searchParams.get("page") || "1";
- const type = searchParams.get("type") ?? "list";
- const order = searchParams.get("order") ?? ORDER_MENU.INTERVIEW[0].type;
- const page = searchParams.get("page") ?? "1";
- const search = searchParams.get("search") || "";
+const InterviewPageNavbar = ({
+ maxPage,
+ generation,
+}: InterviewPageNavbarProps) => {
+ const { pageIndex, type, order, searchKeyword } =
+ useInterviewerPaginationParams();
- const { searchEndPage } = useSearchQuery(pageIndex);
+ const queryParams = { type, order, search: searchKeyword };
- const queryParams = { search, type, order };
const { createQueryString } = useCreateQueryString();
- const {
- data: allData,
- isLoading,
- isError,
- } = useQuery(
- ["allApplicant", order, generation],
- () =>
- getInterviewRecordByPageWithOrder({
- page: +pageIndex,
- order: order,
- year: generation,
- }),
- {
- enabled: !!generation,
- }
- );
-
- if (!allData || isLoading) {
- return
로딩중...
;
- }
-
- if (isError) {
- return
에러 발생
;
- }
-
- const { maxPage } = allData;
return (
{
{fieldAverages.map(({ fieldName, score }) => (
-
+
))}
diff --git a/frontend/components/interview/modal/score/MyScoreForm.tsx b/frontend/components/interview/modal/score/MyScoreForm.tsx
index 83193f9f..f6d8ffe3 100644
--- a/frontend/components/interview/modal/score/MyScoreForm.tsx
+++ b/frontend/components/interview/modal/score/MyScoreForm.tsx
@@ -79,6 +79,7 @@ const MyScoreForm = ({