@@ -6,6 +6,8 @@ import { useForms } from "@/hooks/queries/form/useForms";
66import FilterDropdown from "@/app/components/button/dropdown/FilterDropdown" ;
77import { filterRecruitingOptions } from "@/constants/filterOptions" ;
88import { useRouter , usePathname , useSearchParams } from "next/navigation" ;
9+ import SortSection from "./components/SortSection" ;
10+ import AlbaListItem from "@/app/components/card/cardList/AlbaListItem" ;
911
1012const FORMS_PER_PAGE = 10 ;
1113
@@ -29,7 +31,7 @@ export default function AlbaList() {
2931 // 무한 스크롤을 위한 Intersection Observer 설정
3032 const { ref, inView } = useInView ( {
3133 threshold : 0.1 ,
32- triggerOnce : true ,
34+ triggerOnce : false ,
3335 rootMargin : "100px" ,
3436 } ) ;
3537
@@ -88,13 +90,14 @@ export default function AlbaList() {
8890 return (
8991 < div className = "space-y-4" >
9092 { /* 필터 드롭다운 섹션 */ }
91- < div className = "border-b border-grayscale-100" >
92- < div className = "flex items-center gap-2 py-4" >
93+ < div className = "border-b border-grayscale-100 bg-white " >
94+ < div className = "mx-auto flex max-w-screen-2xl items-center justify-between gap-2 px-4 py-4 md:px-6 lg:px-8 " >
9395 < FilterDropdown
9496 options = { filterRecruitingOptions . map ( ( option ) => option . label ) }
9597 initialValue = { getInitialRecruitingValue ( isRecruiting ) }
9698 onChange = { handleRecruitingFilter }
9799 />
100+ < SortSection />
98101 </ div >
99102 </ div >
100103
@@ -105,22 +108,17 @@ export default function AlbaList() {
105108 </ div >
106109 ) : (
107110 < >
108- { data ?. pages . map ( ( page ) => (
109- < React . Fragment key = { page . nextCursor } >
110- { page . data . map ( ( form ) => (
111- < div key = { form . id } className = "rounded-lg border p-4 transition-all hover:border-primary-orange-200" >
112- < h3 className = "font-bold" > { form . title } </ h3 >
113- < div className = "mt-2 text-sm text-grayscale-500" >
114- < span > 지원자 { form . applyCount } 명</ span >
115- < span className = "mx-2" > •</ span >
116- < span > 스크랩 { form . scrapCount } 명</ span >
117- < span className = "mx-2" > •</ span >
118- < span > 마감 { new Date ( form . recruitmentEndDate ) . toLocaleDateString ( ) } </ span >
111+ < div className = "mx-auto grid max-w-screen-2xl grid-cols-1 gap-8 px-4 md:px-6 lg:grid-cols-2 lg:px-8 2xl:grid-cols-3 2xl:gap-12" >
112+ { data ?. pages . map ( ( page ) => (
113+ < React . Fragment key = { page . nextCursor } >
114+ { page . data . map ( ( form ) => (
115+ < div key = { form . id } className = "w-full" >
116+ < AlbaListItem { ...form } />
119117 </ div >
120- </ div >
121- ) ) }
122- </ React . Fragment >
123- ) ) }
118+ ) ) }
119+ </ React . Fragment >
120+ ) ) }
121+ </ div >
124122
125123 { /* 무한 스크롤 트리거 영역 */ }
126124 < div ref = { ref } className = "h-4 w-full" >
0 commit comments