diff --git a/src/components/infiniteScroll.js b/src/components/infiniteScroll.js index e0a447360effbcf33ccc2a3f97973fd191121710..28f00a78906eaed3356eb82942281fa2bb3ffd7a 100644 --- a/src/components/infiniteScroll.js +++ b/src/components/infiniteScroll.js @@ -19,7 +19,10 @@ function InfiniteScroll(props){ try{ const response = await fetch(`/api/${page}${queryString1}`); const jsonData = await response.json(); - + + const newData = jsonData[page]; + setMinId(jsonData['minId']); + setMinDate(jsonData['minDate']); if(page==='channels'){ setMinDate(jsonData['minDate']); const newData = jsonData[page]; @@ -76,7 +79,13 @@ function InfiniteScroll(props){ setIsLoading(true); - try{ + try{ + const response = await fetch(`/api/${page}?minId=${minId}${queryString2}`); + console.log(`/api/${page}?minId=${minId}${queryString2}`); + const jsonData = await response.json(); + + const newData = jsonData[page]; + setMinId(jsonData['minId']); if(page==='channels'){ const response = await fetch(`/api/${page}?${min}=${minDate}${queryString2}`); @@ -100,11 +109,8 @@ function InfiniteScroll(props){ } setItems((prevItem) => [...prevItem, ...components]); } - }else if(page==='recruits'){ - const response = await fetch(`/api/${page}?${min}=${minId}${queryString2}`); - const jsonData = await response.json(); - setMinId(jsonData['minId']); - const newData = jsonData[page]; + }else { + if(newData.length > 0) { const components = newData.map((item) => ( <PageItem data={item}/> diff --git a/src/components/mainAside.js b/src/components/mainAside.js index 07826b1e568962fa20cfc4ffae25660550866de5..d029df0c3382a44560cecf1c576b163ff6449fb8 100644 --- a/src/components/mainAside.js +++ b/src/components/mainAside.js @@ -36,9 +36,9 @@ function Notice(props){ const sortedNotice = subscribeNotices.sort((a, b) => a.date - b.date); const noticeComponents = sortedNotice.map((notice) => ( <p className={styles.noticeContent}> - <span className={styles.channel}>{notice.channel}</span> - <span className={styles.date}>{notice.date}</span> - <span className={styles.content}>{notice.title}</span> + <span className={styles.channel}>{notice.channelNickname}</span> + <span className={styles.noticeTitle}>{notice.title}</span> + <span className={styles.content}>{notice.content}</span> </p> )); diff --git a/src/components/mainAside.module.css b/src/components/mainAside.module.css index 785107d4569aa0f9297f0c379a0949fe52f79695..82edede28ba086aed3558acc3b61589a7535c40b 100644 --- a/src/components/mainAside.module.css +++ b/src/components/mainAside.module.css @@ -65,15 +65,11 @@ float: left; } -.time{ - -} - .channel{ } -.date{ +.noticeTitle{ } diff --git a/src/components/recruit/createVote.js b/src/components/recruit/createVote.js index b0f55067c55eb83d8ae0d2b10b9fa8e48406bdc7..36d2d286d95d32a5b3f56587b3810eb2fe6695ad 100644 --- a/src/components/recruit/createVote.js +++ b/src/components/recruit/createVote.js @@ -1,15 +1,15 @@ import React from 'react'; import createVoteStyles from './createVote.module.css'; -function CreateVote({ id, data }){ +function CreateVote({ data, time }){ const createVote = async ()=>{ try{ - const response = await fetch(`/api/recruits/${id}/times/save`,{ + const response = await fetch(`/api/recruits/${data.id}/times/save`,{ method: 'POST', headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify(data), + body: JSON.stringify(time), }); if (response.ok){ @@ -26,7 +26,11 @@ function CreateVote({ id, data }){ return ( <div> <div> - <button type='button' className={createVoteStyles.createVote} onClick={createVote}>투표 생성</button> + {data.vote === 'Before' ?( + <button type='button' className={createVoteStyles.createVote} onClick={createVote}>투표 생성</button> + ):( + <button type='button' className={createVoteStyles.endCreateVote} onClick={createVote} disabled>투표 생성</button> + )} </div> </div> diff --git a/src/components/recruit/createVote.module.css b/src/components/recruit/createVote.module.css index dc33432f0320548e100b45bd3b02e9492bbc5824..9a46b5d63c587983e8736cbfe9a37c1e0dda60ce 100644 --- a/src/components/recruit/createVote.module.css +++ b/src/components/recruit/createVote.module.css @@ -9,4 +9,17 @@ background-color:#8393BE; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); /* 그림자 추가 */ transition: background-color 0.3s, color 0.3s, transform 0.3s; +} + +.endCreateVote{ + width: 90px; + height:35px; + border:none; + border-radius: 5px; + cursor: pointer; + + color: white; + background-color:#b5b9c5; + box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); /* 그림자 추가 */ + transition: background-color 0.3s, color 0.3s, transform 0.3s; } \ No newline at end of file diff --git a/src/components/recruit/modifyRecruit.js b/src/components/recruit/modifyRecruit.js index a29b2bf5ac8db10e61cbac4cdbf96c3064e94d00..3f763b01b7f98ad64632ea43915b834951b917b3 100644 --- a/src/components/recruit/modifyRecruit.js +++ b/src/components/recruit/modifyRecruit.js @@ -53,6 +53,7 @@ const ModifyRecruit=({isOpen, onClose, data})=>{ const handleSave = (e) => { e.preventDefault() + if(formData.info.timeCategory === "D"){ modifyInfo({ ...formData, diff --git a/src/components/recruit/recruitList.js b/src/components/recruit/recruitList.js index ab87b296f88b47c38137d97ba7fb2c945de16920..84e7ab616018e84b1713664f5b5cbcbc50bd308c 100644 --- a/src/components/recruit/recruitList.js +++ b/src/components/recruit/recruitList.js @@ -146,7 +146,6 @@ function RecruitList(){ const [generatedUrl, setGeneratedUrl] = useState('recruits'); const [firstQueryString, setFirstQueryString] = useState(''); const [secondQueryString, setSecondQueryString] = useState(''); - const [forceRender, setForceRender] = useState(false); const handleUrlGeneration = (url) => { setGeneratedUrl(url); @@ -159,11 +158,6 @@ function RecruitList(){ const handleSecondQueryString = (url) => { setSecondQueryString(url); }; - - useEffect(() => { - setForceRender((prev) => !prev); - console.log('Component has been re-rendered'); - }, [generatedUrl, firstQueryString, secondQueryString]) return( <div className={recruitListStyles.RecruitList}> @@ -177,6 +171,7 @@ function RecruitList(){ pagename={generatedUrl} queryString1={firstQueryString} queryString2={secondQueryString} + min='minId' /> </div> ) diff --git a/src/components/recruit/timeInquiry.js b/src/components/recruit/timeInquiry.js index 5a4fcd8acfa9b5e7c51629e8bdad5c144d865073..4cf39e3e32c6330b4ca0783fc1183b77a51ab501 100644 --- a/src/components/recruit/timeInquiry.js +++ b/src/components/recruit/timeInquiry.js @@ -231,7 +231,7 @@ function TimeInquiry({ isOpen, onClose, data }){ <div className={timeInquiryStyles.voteButton}> <div className={timeInquiryStyles.createVote}> - <CreateVote id={data.id} data={selectedTimes}/> + <CreateVote data={data} time={selectedTimes}/> </div> </div>