Skip to content
2 changes: 1 addition & 1 deletion src/components/UI/FAQ_Section.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ const FAQSection: React.FC = () => {
id: 2,
question: '동아리 지원은 어떻게 하나요?',
answer:
'우측 상단 메뉴에 34기 지원하기 클릭 후 지원 폼 작성을 통해 지원이 가능합니다.',
'우측 상단 메뉴에 35기 지원하기 클릭 후 지원 폼 작성을 통해 지원이 가능합니다.',
},
{
id: 3,
Expand Down
2 changes: 1 addition & 1 deletion src/components/UI/PythonEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ const PythonEditor: React.FC = () => {
className='h-4 w-4 mr-2.5'
alt='Python Scroll Down Icon'
/>
DASOM 34기 부원 모집
DASOM 35기 부원 모집
</div>
<div className='text-xl font-semibold text-stone-300 flex items-center'>
<img
Expand Down
16 changes: 8 additions & 8 deletions src/components/UI/RecruitUI.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export const RecruitUI: React.FC = () => {
<div className='text-white font-pretendardRegular flex flex-col text-[12px] md:text-sm items-start w-auto shadow-[0px_2px_3px_rgba(255,255,255,0.2)] bg-#17171B] gap-2 mx-2'>
<p className='pl-2 pt-2'>
<span className='font-pretendardBold'>다솜</span>에서 개발자로서 성장해
갈 <span className='font-pretendardBold'>34기 멤버분들</span>을
갈 <span className='font-pretendardBold'>35기 멤버분들</span>을
찾습니다!
</p>
<div className='mt-2 pl-2'>
Expand Down Expand Up @@ -88,7 +88,7 @@ export const RecruitUI: React.FC = () => {
<div className='mt-2 pl-2 flex items-center'>
<p className='text-mainColor font-pretendardSemiBold'>📝 모집 대상 :</p>
<span className='text-white pl-1'>
25년도 1학기부터 다솜과 함께할 예비 다솜 멤버
26년도 1학기부터 다솜과 함께할 예비 다솜 멤버
</span>
</div>

Expand Down Expand Up @@ -136,7 +136,7 @@ export const RecruitUI_SUB: React.FC<RecruitUIProps> = ({ name }) => {
<div className='whitespace-pre-line text-white flex flex-col items-start w-auto h-[auto] shadow-[0px_2px_3px_rgba(255,255,255,0.2)] bg-#17171B] gap-2 mx-2 font-pretendardRegular pl-2 text-[12px] md:text-sm'>
<p className='pt-3 '>
{`${name}님 안녕하세요 컴퓨터공학부 전공동아리 다솜입니다.
먼저 다솜 34기에 많은 관심을 갖고 지원해 주셔서 감사드리며, `}
먼저 다솜 35기에 많은 관심을 갖고 지원해 주셔서 감사드리며, `}
<p>
<span className='text-mainColor font-pretendardBold'>
1차 서류 합격
Expand Down Expand Up @@ -165,7 +165,7 @@ export const RecruitUI_SUB2: React.FC<RecruitUIProps> = ({ name }) => {
<div className='whitespace-pre-line text-white flex flex-col items-start w-auto h-[auto] shadow-[0px_2px_3px_rgba(255,255,255,0.2)] bg-#17171B] gap-2 mx-2 font-pretendardRegular pl-2 text-[12px] md:text-sm'>
<p className='pt-3 '>
{`${name}님 안녕하세요 컴퓨터공학부 전공동아리 다솜입니다.
먼저 다솜 34기에 많은 관심을 갖고 지원해 주셔서 감사드리며, `}
먼저 다솜 35기에 많은 관심을 갖고 지원해 주셔서 감사드리며, `}
</p>

<p>
Expand All @@ -184,7 +184,7 @@ export const RecruitUI_FINAL: React.FC<RecruitUIProps> = ({ name }) => {
return (
<div className='whitespace-pre-line text-white flex flex-col items-start w-auto h-[auto] shadow-[0px_2px_3px_rgba(255,255,255,0.2)] bg-#17171B] gap-2 mx-2 font-pretendardRegular pl-2 text-[12px] md:text-sm'>
<p className='pt-3 font-pretendardBold '>
안녕하세요 {`${name}`}님, <br /> 다솜 34기에
안녕하세요 {`${name}`}님, <br /> 다솜 35기에
<span className='text-mainColor font-pretendardBold'>
{' '}
최종합격
Expand All @@ -200,7 +200,7 @@ export const RecruitUI_FINAL: React.FC<RecruitUIProps> = ({ name }) => {

<p className='mb-3'>
{`다시 한번 진심으로 축하드리며,
2025학년도 다솜 34기 멤버로서의 앞으로의 활동을 기대하겠습니다.
2026학년도 다솜 35기 멤버로서의 앞으로의 활동을 기대하겠습니다.
수고 많으셨습니다. ☺️`}
</p>
</div>
Expand All @@ -212,7 +212,7 @@ export const RecruitUI_FINAL2: React.FC<RecruitUIProps> = ({ name }) => {
<div className='whitespace-pre-line text-white flex flex-col items-start w-auto h-[auto] shadow-[0px_2px_3px_rgba(255,255,255,0.2)] bg-#17171B] gap-2 mx-2 font-pretendardRegular pl-2 text-[12px] md:text-sm'>
<p className='pt-3 '>
{`${name}님 안녕하세요. 컴퓨터공학부 전공동아리 다솜입니다.
먼저, 다솜 34기에 관심을 갖고 지원해 주시고 소중한 시간을 내어
먼저, 다솜 35기에 관심을 갖고 지원해 주시고 소중한 시간을 내어
대면 인터뷰까지 함께해 주셔서 진심으로 감사드립니다.`}
</p>

Expand Down Expand Up @@ -243,7 +243,7 @@ export const SomRecruitUI: React.FC = () => {
</p>
<div className='mt-2 pl-2 flex'>
<p className='text-mainColor font-pretendardSemiBold'>📅 모집 일정 :</p>
<span className='text-white pl-1'>11월 03일 (월) ~ 11월 07일 (일)</span>
<span className='text-white pl-1'>11월 03일 (월) ~ 11월 09일 (일)</span>
</div>

<div className='mt-2 pl-2 flex'>
Expand Down
17 changes: 13 additions & 4 deletions src/components/UI/Recruit_InputField.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,13 @@ export const InputField: React.FC<InputFieldProps> = ({
'mb-4 p-3 shadow-[0px_2px_3px_rgba(255,255,255,0.2)] text-white text-[12px] md:text-base w-full font-pretendardRegular'
const baseInputStyles =
'w-full bg-mainBlack border-b border-white p-2 focus:outline-none text-[10px] md:text-sm font-pretendardRegular'

// 1. 체크박스 가시성 개선: 체크 표시(✔) 추가 및 크기 조정
const inputStyles =
'w-4 h-4 bg-mainBlack border border-white focus:ring-white border-2 rounded-[3px] appearance-none checked:bg-white checked:border-white font-pretendardRegular'
'w-5 h-5 bg-mainBlack border-2 border-white rounded-[3px] appearance-none cursor-pointer relative transition-all ' +
'checked:bg-white checked:border-white ' +
'checked:after:content-["✔"] checked:after:absolute checked:after:text-mainBlack checked:after:text-[14px] ' +
'checked:after:font-bold checked:after:left-1/2 checked:after:top-1/2 checked:after:-translate-x-1/2 checked:after:-translate-y-1/2'

return (
<div className={containerStyles}>
Expand Down Expand Up @@ -95,16 +100,20 @@ export const InputField: React.FC<InputFieldProps> = ({
rows={4}
/>
) : type === 'checkbox' ? (
<div className='flex items-center space-x-2'>
<div className='flex items-center space-x-3'>
<input
type='checkbox'
id={name}
name={name}
checked={checked ?? (value as boolean)}
onChange={onChange}
required={required}
className={inputStyles}
/>
<span className='text-white'>{checkboxLabel}</span>
{/* 라벨 클릭 시에도 체크되도록 htmlFor 추가 */}
<label htmlFor={name} className='text-white cursor-pointer select-none'>
{checkboxLabel}
</label>
</div>
) : (
<input
Expand All @@ -122,4 +131,4 @@ export const InputField: React.FC<InputFieldProps> = ({
)}
</div>
)
}
}
2 changes: 1 addition & 1 deletion src/components/sections/CoreValuesSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ const CoreValuesSection: React.FC = () => {
<div className="text-center">
<p className="text-xl md:text-2xl">Core Value</p>
<h2 className="mt-1 text-3xl md:text-4xl font-pretendardBold">핵심 가치</h2>
<p className="mt-4 text-base md:text-xl text-white/80 font-pretendardRegular">34기 다솜은 이런 분들과 함께 성장하고 싶습니다.</p>
<p className="mt-4 text-base md:text-xl text-white/80 font-pretendardRegular">35기 다솜은 이런 분들과 함께 성장하고 싶습니다.</p>
<p className="mt-4 text-xl md:text-3xl font-pretendardBold">"Dare. Share. Someday."</p>
</div>

Expand Down
17 changes: 8 additions & 9 deletions src/pages/admin/ManRecruitDate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,21 @@ import {
const ManRecruitDate = () => {
const [dates, setDates] = useState({
// 모집 기간 (시작일, 종료일)
RECRUITMENT_PERIOD_START: dayjs('2025-03-01T09:00:00'),
RECRUITMENT_PERIOD_END: dayjs('2025-03-10T18:00:00'),
RECRUITMENT_PERIOD_START: dayjs('2026-02-24T09:00:00'),
RECRUITMENT_PERIOD_END: dayjs('2026-03-10T18:00:00'),

// 1차 합격 (서류) 발표일
DOCUMENT_PASS_ANNOUNCEMENT: dayjs('2025-03-15T12:00:00'),

DOCUMENT_PASS_ANNOUNCEMENT: dayjs('2026-03-10T12:00:00'),
// 면접 기간 (시작일, 종료일)
INTERVIEW_PERIOD_START: dayjs('2025-03-20T12:00:00'),
INTERVIEW_PERIOD_END: dayjs('2025-03-20T12:00:00'),
INTERVIEW_PERIOD_START: dayjs('2026-03-11T12:00:00'),
INTERVIEW_PERIOD_END: dayjs('2026-03-13T23:00:00'),

// 면접 시간 (시작시각, 종료시각)
INTERVIEW_TIME_START: dayjs('18:00:00', 'HH:mm:ss'),
INTERVIEW_TIME_END: dayjs('18:00:00', 'HH:mm:ss'),
INTERVIEW_TIME_START: dayjs('12:00:00', 'HH:mm:ss'),
INTERVIEW_TIME_END: dayjs('21:00:00', 'HH:mm:ss'),

// 최종 합격 (면접) 발표일
INTERVIEW_PASS_ANNOUNCEMENT: dayjs('2025-03-30T17:00:00'),
INTERVIEW_PASS_ANNOUNCEMENT: dayjs('2026-03-14T12:00:00'),
})

const statusMap = {
Expand Down
8 changes: 4 additions & 4 deletions src/pages/recruit/Recruit.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ const Recruit: React.FC = () => {
}
}, [loadSchedule, navigate])

// useEffect(() => {
// checkRecruitmentPeriod()
// }, [checkRecruitmentPeriod])
useEffect(() => {
checkRecruitmentPeriod()
}, [checkRecruitmentPeriod])

// useEffect(() => {
// if (isRecruiting === false && !alertShown.current) {
Expand All @@ -62,7 +62,7 @@ const Recruit: React.FC = () => {
return (
<div className='bg-subGrey3' style={{ minHeight: 'calc(100vh - 56px)' }}>
<MobileLayout>
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 34기 모집 폼' />
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 35기 모집 폼' />
<RecruitUI />
<div className='flex flex-col items-center gap-6 mb-40'>
<form
Expand Down
2 changes: 1 addition & 1 deletion src/pages/recruit/RecruitCheck.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const RecruitCheck: React.FC = () => {
return (
<div className='bg-subGrey3' style={{ minHeight: 'calc(100vh - 56px)' }}>
<MobileLayout>
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 34기 합격자 조회' />
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 35기 합격자 조회' />
{isPassed ? (
<RecruitUI_SUB name={name} />
) : (
Expand Down
2 changes: 1 addition & 1 deletion src/pages/recruit/RecruitCheckFinal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const RecruitChekFinal: React.FC = () => {
return (
<div className='bg-subGrey3' style={{ minHeight: 'calc(100vh - 56px)' }}>
<MobileLayout>
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 34기 합격자 조회' />
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 35기 합격자 조회' />
{isPassed ? (
<RecruitUI_FINAL name={name} />
) : (
Expand Down
14 changes: 9 additions & 5 deletions src/pages/recruit/RecruitInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ import { useRecruitSchedule } from './useRecruitSchedule'
import { formatDate } from './useRecruitSchedule'

const RecruitInfo: React.FC = () => {
const FIRST_GENERATION_YEAR = 1992 // 다솜 1기 1992년 기준

const currentYear = new Date().getFullYear() // 현재 년도 계산
const currentGeneration = currentYear - FIRST_GENERATION_YEAR + 1 // 현재 기수 계산

const navigate = useNavigate()
const { loadSchedule } = useRecruitSchedule()
const [periodData, setPeriodData] = useState({
Expand Down Expand Up @@ -89,7 +94,7 @@ const RecruitInfo: React.FC = () => {

case 'recruiting':
return {
text: '34기 지원하기',
text: `${currentGeneration}기 지원하기`,
disabled: false,
onClick: () => navigate('/recruit'),
}
Expand Down Expand Up @@ -157,7 +162,7 @@ const RecruitInfo: React.FC = () => {
<p>DASOM</p>
<p className='text-lg'>"Dare, Share. Someday."</p>
</div>
<p className='text-right'>34th</p>
<p className='text-right'>{currentGeneration}th</p>
</div>
<RecruitInfo_Button
text={buttonState.text}
Expand All @@ -167,7 +172,7 @@ const RecruitInfo: React.FC = () => {

{/* Schedule Section */}
<div className='flex flex-col mt-96 w-[90%] items-center font-pretendardRegular overflow-x-hidden'>
<p className='font-pretendardBold text-4xl'>34기 모집일정</p>
<p className='font-pretendardBold text-4xl'>{currentGeneration}기 모집일정</p>
<div className='my-10'>
{periodData.recruitmentPeriodStart &&
periodData.recruitmentPeriodEnd ? (
Expand Down Expand Up @@ -218,8 +223,7 @@ const RecruitInfo: React.FC = () => {
{formatMmDd(periodData.interviewPassAnnouncement)}
</p>
<p>
<span className='font-pretendardBold'>4. 다솜 2학기 OT</span> 09월
19일
<span className='font-pretendardBold'>4. 다솜 1학기 OT</span> 03월 20일
</p>
</div>
<p className='mt-6 text-base text-subGrey2'>
Expand Down
2 changes: 1 addition & 1 deletion src/pages/recruit/RecruitMeeting.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ const RecruitMeeting: React.FC = () => {
return (
<div className='bg-subGrey3' style={{ minHeight: 'calc(100vh - 56px)' }}>
<MobileLayout>
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 34기 모집 폼' />
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 35기 모집 폼' />
<RecruitUI />
<Recruit_InfoBanner
message={`1차 서류에 합격되신 점 다시 한번 축하드리며,
Expand Down
2 changes: 1 addition & 1 deletion src/pages/recruit/RecruitResult.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ export const RecruitResult: React.FC = () => {
return (
<div className='bg-subGrey3' style={{ minHeight: 'calc(100vh - 56px)' }}>
<MobileLayout>
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 34기 합격자 조회' />
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 35기 합격자 조회' />
<form
className='flex flex-col items-center mt-4 bg-mainBlack w-full px-2'
onSubmit={handleSubmit}
Expand Down
2 changes: 1 addition & 1 deletion src/pages/recruit/RecruitSubmit.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export const RecruitSubmit: React.FC = () => {
return (
<div className='bg-subGrey3' style={{ minHeight: 'calc(100vh - 56px)' }}>
<MobileLayout>
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 34기 모집 폼' />
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 35기 모집 폼' />
<RecruitUI />
<Recruit_InfoBanner
message={`다솜에 지원해주셔서 감사합니다.
Expand Down
2 changes: 1 addition & 1 deletion src/pages/recruit/RecruitSubmitMeeting.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const RecruitSubmitMeeting: React.FC = () => {
return (
<div className='bg-subGrey3' style={{ minHeight: 'calc(100vh - 56px)' }}>
<MobileLayout>
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 34기 모집 폼' />
<RecruitHeader title='컴퓨터 소프트웨어 공학과 전공 동아리 다솜 35기 모집 폼' />
<RecruitUI />
<Recruit_InfoBanner
message={`면접일 제출이 완료되었습니다.
Expand Down