-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #33 from Team-inglo/feat/IGW-28/30
[Feat/igw-28/30] 공고 상세 페이지 구현하기
- Loading branch information
Showing
27 changed files
with
1,378 additions
and
6 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import CheckIconLarge from '@/assets/icons/checkIconLarge.svg?react'; | ||
import Button from '@/components/Common/Button'; | ||
import { buttonTypeKeys } from '@/constants/components'; | ||
import { useEffect } from 'react'; | ||
|
||
type CompleteButtonModalProps = { | ||
title: string; | ||
content: string; | ||
buttonContent: string; | ||
onClick: () => void; | ||
}; | ||
|
||
const CompleteButtonModal = ({ | ||
title, | ||
content, | ||
buttonContent, | ||
onClick, | ||
}: CompleteButtonModalProps) => { | ||
// 모달 열림 상태에 따라 body 스크롤 제어 | ||
useEffect(() => { | ||
document.body.style.overflow = 'hidden'; | ||
return () => { | ||
document.body.style.overflow = 'auto'; | ||
}; | ||
}, []); | ||
|
||
return ( | ||
<div className="fixed top-0 left-0 w-screen h-screen px-14 flex flex-col gap-4 items-center justify-center text-center bg-white"> | ||
<CheckIconLarge /> | ||
<div className="head-2">{title}</div> | ||
<div className="body-2">{content}</div> | ||
<Button | ||
type={buttonTypeKeys.LARGE} | ||
bgColor="bg-[#FEF387]" | ||
fontColor="text-[#1E1926]" | ||
isBorder={false} | ||
title={buttonContent} | ||
onClick={onClick} | ||
/> | ||
</div> | ||
); | ||
}; | ||
|
||
export default CompleteButtonModal; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import { useEffect } from 'react'; | ||
import { useLocation } from 'react-router-dom'; | ||
|
||
const ScrollToTop = () => { | ||
const { pathname } = useLocation(); | ||
|
||
useEffect(() => { | ||
window.scrollTo(0, 0); | ||
}, [pathname]); | ||
|
||
return null; | ||
}; | ||
|
||
export default ScrollToTop; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
import { buttonTypeKeys } from '@/constants/components'; | ||
import Button from '@/components/Common/Button'; | ||
import CompleteButtonModal from '@/components/Common/CompleteButtonModal'; | ||
import { useNavigate } from 'react-router-dom'; | ||
import { useState } from 'react'; | ||
|
||
const PostApplyButton = () => { | ||
const navigate = useNavigate(); | ||
|
||
const [isComplete, setIsComplete] = useState<boolean>(false); | ||
|
||
return ( | ||
<> | ||
<section className="fixed bottom-0 left-0 w-full flex justify-center items-center gap-[0.5rem] pt-[0.75rem] pb-[2.5rem] px-[1.5rem] bg-white"> | ||
{/* TODO: 마이페이지 - 이력서 관리로 이동하기 */} | ||
<Button | ||
type={buttonTypeKeys.BACK} | ||
bgColor={'bg-[#F4F4F9]'} | ||
fontColor="text-[#BDBDBD]" | ||
title="Edit" | ||
isBorder={false} | ||
/> | ||
<Button | ||
type={buttonTypeKeys.APPLY} | ||
bgColor={'bg-[#FEF387]'} | ||
fontColor="text-[#1E1926]" | ||
title="Apply Now" | ||
isBorder={false} | ||
onClick={() => setIsComplete(true)} | ||
/> | ||
</section> | ||
{isComplete && ( | ||
<CompleteButtonModal | ||
title="Application Completed" | ||
content="You can check the status of your documents" | ||
buttonContent="Check Now" | ||
// TODO: 추후에 지원상태 - 상세 페이지로 이동시키기 | ||
onClick={() => navigate('/')} | ||
/> | ||
)} | ||
</> | ||
); | ||
}; | ||
|
||
export default PostApplyButton; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import PersonIcon from '@/assets/icons/PersonIcon.svg?react'; | ||
import { ReactNode } from 'react'; | ||
|
||
type PostApplyCardLayoutProps = { | ||
title: string; | ||
children: ReactNode; | ||
}; | ||
|
||
const PostApplyCardLayout = ({ title, children }: PostApplyCardLayoutProps) => { | ||
return ( | ||
<div className="flex flex-col gap-[1.5rem] w-full px-[1rem] pt-[1rem] pb-[1.25rem] rounded-[0.75rem] border-[0.031rem] border-[#DCDCDC]"> | ||
<div className="flex items-center gap-[0.75rem] px-[0.25rem] pb-[0.75rem] border-b-[0.031rem] border-b-[#DCDCDC]"> | ||
<PersonIcon /> | ||
<h3 className="head-3 text-[#1E1926]">{title}</h3> | ||
</div> | ||
<div className="w-full">{children}</div> | ||
</div> | ||
); | ||
}; | ||
|
||
export default PostApplyCardLayout; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
type PostApplyProfileProps = { | ||
profileImgUrl: string; | ||
name: string; | ||
}; | ||
|
||
const PostApplyProfile = ({ name }: PostApplyProfileProps) => { | ||
return ( | ||
<div> | ||
<div className='w-[5.125rem] h-[5.125rem] mb-[1rem] rounded-full bg-cover bg-center bg-[url("/src/assets/images/JobIconExample.jpeg")]'></div> | ||
<p className=" text-[#33384B] font-bold text-lg">{name}</p> | ||
</div> | ||
); | ||
}; | ||
|
||
export default PostApplyProfile; |
Oops, something went wrong.