71 lines
2.7 KiB
JavaScript
71 lines
2.7 KiB
JavaScript
'use client'
|
|
|
|
import { useState } from "react";
|
|
import FirstOption from "./FirstOption";
|
|
import SecondOption from "./SecondOption";
|
|
import WithDraggable from "@/components/common/draggable/withDraggable";
|
|
import { useRecoilState } from "recoil";
|
|
import { modalState } from "@/store/modalAtom";
|
|
import ThirdOption from "./ThirdOption";
|
|
|
|
const HandleBtnClick = (e) => {
|
|
const button = e.target.closest('button');
|
|
if(!button.classList.contains('act')){
|
|
button.classList.add('act');
|
|
}else{
|
|
button.classList.remove('act');
|
|
}
|
|
}
|
|
const propsClick = {
|
|
onClick: HandleBtnClick
|
|
}
|
|
|
|
export default function SettingModal01 (){
|
|
const [modalOption, setModalOption] = useRecoilState(modalState); //modal 열림닫힘 state
|
|
const [buttonAct, setButtonAct] = useState(1);
|
|
const [close, setClose] = useState(false)
|
|
const HandleClickClose = () => {
|
|
setClose(true)
|
|
setTimeout(() => {
|
|
setModalOption({...modalOption, option: false})
|
|
setClose(false);
|
|
}, 180)
|
|
}
|
|
return(
|
|
<WithDraggable isShow={true}>
|
|
<div className={`modal-pop-wrap sm ${modalOption.option ? 'mount' : ''} ${close ? 'unmount' : ''} `}>
|
|
<div className="modal-head handle">
|
|
<h1 className="title">Canvas設定</h1>
|
|
<button className="modal-close" onClick={HandleClickClose}>닫기</button>
|
|
</div>
|
|
<div className="modal-body">
|
|
<div className="modal-btn-wrap">
|
|
<button
|
|
className={`btn-frame modal ${buttonAct === 1 ? 'act' : ''}`}
|
|
onClick={() => setButtonAct(1)}
|
|
>
|
|
ディスプレイ設定
|
|
</button>
|
|
|
|
<button
|
|
className={`btn-frame modal ${buttonAct === 2 ? 'act' : ''}`}
|
|
onClick={() => setButtonAct(2)}
|
|
>
|
|
フォントと図面サイズの設定
|
|
</button>
|
|
<button
|
|
className={`btn-frame modal ${buttonAct === 3 ? 'act' : ''}`}
|
|
onClick={() => setButtonAct(3)}
|
|
>
|
|
グリッド
|
|
</button>
|
|
</div>
|
|
{buttonAct === 1 && <FirstOption {...propsClick}/>}
|
|
{buttonAct === 2 && <SecondOption {...propsClick}/>}
|
|
{buttonAct === 3 && <ThirdOption {...propsClick}/>}
|
|
</div>
|
|
<div className="modal-foot handle"></div>
|
|
</div>
|
|
</WithDraggable>
|
|
)
|
|
} |