공부했던 props를 처음 사용하면서 개념을 더 잘 이해하게되었습니다. SideBar를 만들면서 state를 props로 이용하는 방법과 x축을 이용해 화면을 전환하는 방법, ~를 이용하여 다른 영역들을 함께 묶을 수 있는 것을 알게되어 다음에 더 잘 다듬어서 이용해 볼 예정입니다.
const [isSideBarOpen, setIsSideBarOpen] = useState(false);
const handleSideBarOpen = () => {
setIsSideBarOpen(!isSideBarOpen);
};
<NavSidebar
handleSideBarOpen={handleSideBarOpen}
isSideBarOpen={isSideBarOpen}
/>
<div className={`firstNav ${isSideBarOpen ? 'active' : ''}`}>
<header className={`secondNav ${isSideBarOpen ? 'active' : ''}`}>
<div className="secondNavLeftBox" onClick={handleSideBarOpen}>
<FontAwesomeIcon icon={faSearch} onClick={handleSearchOpen} />
.firstNav {
transform: translateX(0px);
transition: transform 0.5s ease;
&.active,
&.active ~ div,
&.active ~ header,
&.active ~ footer {
transform: translateX(320px);
opacity: 0.2;
transition: transform 0.5s ease-in-out;
}
export default function NavSidebar({ handleSideBarOpen
, isSideBarOpen })
<div className={`containerWrapper ${isSideBarOpen ? 'active' : ''}`}>
<div className="sideTopRight" onClick={handleSideBarOpen}>
<strong>Close</strong>
<FontAwesomeIcon icon={faTimes} />
</div>
.containerWrapper {
position: absolute;
top: 0;
height: 100%;
transform: translateX(-320px);
transition: transform 0.5s ease;
&.active {
transform: translateX(0px);
}