Skip to content
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
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>
)
}
}
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
2 changes: 1 addition & 1 deletion src/pages/recruit/Recruit.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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
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