diff --git a/src/components/SettingsModal.jsx b/src/components/GridSettingsModal.jsx similarity index 99% rename from src/components/SettingsModal.jsx rename to src/components/GridSettingsModal.jsx index 2db65293..78e3c8a6 100644 --- a/src/components/SettingsModal.jsx +++ b/src/components/GridSettingsModal.jsx @@ -6,7 +6,6 @@ import { guideLineState } from '@/store/canvasAtom' import { fabric } from 'fabric' import { ColorPicker, useColor } from 'react-color-palette' import 'react-color-palette/css' -import { withRouter } from 'next/router' export default function SettingsModal(props) { const { canvasProps } = props diff --git a/src/components/InitSettingsModal.jsx b/src/components/InitSettingsModal.jsx new file mode 100644 index 00000000..8d0299f2 --- /dev/null +++ b/src/components/InitSettingsModal.jsx @@ -0,0 +1,163 @@ +import { useEffect, useState, memo, useCallback } from 'react' +import { Button, Checkbox, CheckboxGroup, RadioGroup, Radio, Input, Select, SelectItem } from '@nextui-org/react' +import { useRecoilState, useRecoilValue } from 'recoil' +import { modalContent, modalState } from '@/store/modalAtom' +import { useAxios } from '@/hooks/useAxios' + +export default function InitSettingsModal(props) { + const [open, setOpen] = useRecoilState(modalState) + const [roofMaterials, setRoofMaterials] = useState([]) + const [roofSettings, setRoofSettings] = useState([]) + const { get } = useAxios() + + useEffect(() => { + get({ url: '/api/roof-material/roof-material-infos' }).then((res) => { + //TODO: error handling + if (!res) return + + setRoofMaterials(res) + }) + }, []) + + const addRoofSetting = () => { + if (roofSettings.length === 4) { + alert('지붕재는 최대 4개까지 선택할 수 있습니다.') + return + } + + const newRoofSettings = { + id: roofSettings.length + 1, + roofId: '', + width: '', + height: '', + type: '', + gap: '', + layout: '병렬식', + } + + setRoofSettings([...roofSettings, newRoofSettings]) + } + + const handleRoofSettings = (id, event) => { + const newRoofSettings = [...roofSettings] + let setting = newRoofSettings.find((setting) => setting.id === id) + setting[event.target.name] = event.target.value + setRoofSettings(newRoofSettings) + } + + return ( + <> +