Canvas 설정 수정
This commit is contained in:
parent
b07273ea86
commit
6e4082935f
@ -5,9 +5,10 @@ import { POLYGON_TYPE } from '@/common/common'
|
|||||||
import { setSurfaceShapePattern } from '@/util/canvas-util'
|
import { setSurfaceShapePattern } from '@/util/canvas-util'
|
||||||
import { useEvent } from '@/hooks/useEvent'
|
import { useEvent } from '@/hooks/useEvent'
|
||||||
|
|
||||||
export default function FirstOption() {
|
export default function FirstOption(props) {
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
const { canvas, settingModalFirstOptions, setSettingModalFirstOptions, settingsData, setSettingsData } = useCanvasSetting()
|
// const { canvas, settingModalFirstOptions, setSettingModalFirstOptions, settingsData, setSettingsData } = useCanvasSetting()
|
||||||
|
let { canvas, settingModalFirstOptions, setSettingModalFirstOptions, settingsData, setSettingsData } = props
|
||||||
const { option1, option2, dimensionDisplay } = settingModalFirstOptions
|
const { option1, option2, dimensionDisplay } = settingModalFirstOptions
|
||||||
const { initEvent } = useEvent()
|
const { initEvent } = useEvent()
|
||||||
|
|
||||||
@ -18,22 +19,26 @@ export default function FirstOption() {
|
|||||||
|
|
||||||
const onClickOption = async (item) => {
|
const onClickOption = async (item) => {
|
||||||
//치수 표시(단 건 선택)
|
//치수 표시(단 건 선택)
|
||||||
|
let dimensionDisplay = settingModalFirstOptions?.dimensionDisplay
|
||||||
|
let option1 = settingModalFirstOptions?.option1
|
||||||
|
let option2 = settingModalFirstOptions?.option2
|
||||||
|
|
||||||
if (item.column === 'corridorDimension' || item.column === 'realDimension' || item.column === 'noneDimension') {
|
if (item.column === 'corridorDimension' || item.column === 'realDimension' || item.column === 'noneDimension') {
|
||||||
const options = settingModalFirstOptions?.dimensionDisplay.map((option) => {
|
dimensionDisplay = settingModalFirstOptions?.dimensionDisplay.map((option) => {
|
||||||
option.selected = option.id === item.id
|
option.selected = option.id === item.id
|
||||||
return option
|
return option
|
||||||
})
|
})
|
||||||
|
|
||||||
setSettingModalFirstOptions({ ...settingModalFirstOptions, dimensionDisplay: [...options] })
|
// setSettingModalFirstOptions({ ...settingModalFirstOptions, dimensionDisplay: [...options] })
|
||||||
|
|
||||||
//화면 표시(단 건 선택)
|
//화면 표시(단 건 선택)
|
||||||
} else if (item.column === 'onlyBorder' || item.column === 'lineHatch' || item.column === 'allPainted') {
|
} else if (item.column === 'onlyBorder' || item.column === 'lineHatch' || item.column === 'allPainted') {
|
||||||
const options = settingModalFirstOptions?.option2.map((option2) => {
|
option2 = settingModalFirstOptions?.option2.map((option2) => {
|
||||||
option2.selected = option2.id === item.id
|
option2.selected = option2.id === item.id
|
||||||
return option2
|
return option2
|
||||||
})
|
})
|
||||||
|
|
||||||
setSettingModalFirstOptions({ ...settingModalFirstOptions, option2: [...options] })
|
// setSettingModalFirstOptions({ ...settingModalFirstOptions, option2: [...options] })
|
||||||
|
|
||||||
const polygons = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
|
const polygons = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
|
||||||
|
|
||||||
@ -41,25 +46,18 @@ export default function FirstOption() {
|
|||||||
setSurfaceShapePattern(polygon, item.column)
|
setSurfaceShapePattern(polygon, item.column)
|
||||||
})
|
})
|
||||||
//디스플레이 설정 표시(단 건 선택)
|
//디스플레이 설정 표시(단 건 선택)
|
||||||
} else if (item.column === 'imageDisplay') {
|
} else {
|
||||||
item.selected = !item.selected
|
option1 = settingModalFirstOptions?.option1.map((opt) => {
|
||||||
canvas
|
|
||||||
.getObjects()
|
|
||||||
.filter((obj) => obj.name === 'backGroundImage')
|
|
||||||
.forEach((image) => (image.visible = item.selected))
|
|
||||||
canvas.renderAll()
|
|
||||||
}else {
|
|
||||||
const options = settingModalFirstOptions?.option1.map((opt) => {
|
|
||||||
if (opt.id === item.id) {
|
if (opt.id === item.id) {
|
||||||
opt.selected = !opt.selected
|
opt.selected = !opt.selected
|
||||||
}
|
}
|
||||||
return opt
|
return opt
|
||||||
})
|
})
|
||||||
|
|
||||||
setSettingModalFirstOptions({ ...settingModalFirstOptions, option1: [...options] })
|
// setSettingModalFirstOptions({ ...settingModalFirstOptions, option1: [...options] })
|
||||||
}
|
}
|
||||||
|
|
||||||
setSettingsData({ ...settingsData, ...settingModalFirstOptions })
|
setSettingsData({ ...settingsData, option1: [...option1], option2: [...option2], dimensionDisplay: [...dimensionDisplay] })
|
||||||
}
|
}
|
||||||
|
|
||||||
// useEffect(() => {
|
// useEffect(() => {
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import DotLineGrid from '@/components/floor-plan/modal/grid/DotLineGrid'
|
|||||||
import { useCanvasSetting } from '@/hooks/option/useCanvasSetting'
|
import { useCanvasSetting } from '@/hooks/option/useCanvasSetting'
|
||||||
import { useEvent } from '@/hooks/useEvent'
|
import { useEvent } from '@/hooks/useEvent'
|
||||||
|
|
||||||
export default function GridOption() {
|
export default function GridOption(props) {
|
||||||
const [gridOptions, setGridOptions] = useRecoilState(settingModalGridOptionsState)
|
const [gridOptions, setGridOptions] = useRecoilState(settingModalGridOptionsState)
|
||||||
const [adsorptionPointAddMode, setAdsorptionPointAddMode] = useRecoilState(adsorptionPointAddModeState)
|
const [adsorptionPointAddMode, setAdsorptionPointAddMode] = useRecoilState(adsorptionPointAddModeState)
|
||||||
const setSettingModalGridOptions = useSetRecoilState(settingModalGridOptionsState)
|
const setSettingModalGridOptions = useSetRecoilState(settingModalGridOptionsState)
|
||||||
@ -23,12 +23,13 @@ export default function GridOption() {
|
|||||||
const [colorId, setColorId] = useState(uuidv4())
|
const [colorId, setColorId] = useState(uuidv4())
|
||||||
const [dotLineId, setDotLineId] = useState(uuidv4())
|
const [dotLineId, setDotLineId] = useState(uuidv4())
|
||||||
|
|
||||||
const { gridColor, setGridColor, color } = useCanvasSetting()
|
// const { gridColor, setGridColor, color } = useCanvasSetting()
|
||||||
|
const { gridColor, setGridColor, color } = props
|
||||||
|
|
||||||
const { initEvent } = useEvent()
|
const { initEvent } = useEvent()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log(gridColor, color)
|
console.log('GridOption useEffect 실행')
|
||||||
setGridColor(color.hex)
|
setGridColor(color.hex)
|
||||||
}, [color])
|
}, [color])
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import { useRecoilState, useRecoilValue } from 'recoil'
|
|||||||
import { fontSelector, globalFontAtom } from '@/store/fontAtom'
|
import { fontSelector, globalFontAtom } from '@/store/fontAtom'
|
||||||
import { useEvent } from '@/hooks/useEvent'
|
import { useEvent } from '@/hooks/useEvent'
|
||||||
|
|
||||||
export default function SecondOption() {
|
export default function SecondOption(props) {
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
const { addPopup, closePopup } = usePopup()
|
const { addPopup, closePopup } = usePopup()
|
||||||
const [showFontSettingModal, setShowFontSettingModal] = useState(false)
|
const [showFontSettingModal, setShowFontSettingModal] = useState(false)
|
||||||
@ -27,6 +27,16 @@ export default function SecondOption() {
|
|||||||
|
|
||||||
const { initEvent } = useEvent()
|
const { initEvent } = useEvent()
|
||||||
|
|
||||||
|
// const {
|
||||||
|
// fetchSettings,
|
||||||
|
// planSizeSettingMode,
|
||||||
|
// setPlanSizeSettingMode,
|
||||||
|
// settingModalSecondOptions,
|
||||||
|
// setSettingModalSecondOptions,
|
||||||
|
// adsorptionPointMode,
|
||||||
|
// setAdsorptionPointMode,
|
||||||
|
// setAdsorptionRange,
|
||||||
|
// } = useCanvasSetting()
|
||||||
const {
|
const {
|
||||||
fetchSettings,
|
fetchSettings,
|
||||||
planSizeSettingMode,
|
planSizeSettingMode,
|
||||||
@ -36,7 +46,7 @@ export default function SecondOption() {
|
|||||||
adsorptionPointMode,
|
adsorptionPointMode,
|
||||||
setAdsorptionPointMode,
|
setAdsorptionPointMode,
|
||||||
setAdsorptionRange,
|
setAdsorptionRange,
|
||||||
} = useCanvasSetting()
|
} = props
|
||||||
const { option3, option4 } = settingModalSecondOptions
|
const { option3, option4 } = settingModalSecondOptions
|
||||||
|
|
||||||
// 데이터를 최초 한 번만 조회
|
// 데이터를 최초 한 번만 조회
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import GridOption from '@/components/floor-plan/modal/setting01/GridOption'
|
|||||||
import { canGridOptionSeletor } from '@/store/canvasAtom'
|
import { canGridOptionSeletor } from '@/store/canvasAtom'
|
||||||
import { useRecoilValue } from 'recoil'
|
import { useRecoilValue } from 'recoil'
|
||||||
import { usePopup } from '@/hooks/usePopup'
|
import { usePopup } from '@/hooks/usePopup'
|
||||||
|
import { useCanvasSetting } from '@/hooks/option/useCanvasSetting'
|
||||||
|
|
||||||
export default function SettingModal01(props) {
|
export default function SettingModal01(props) {
|
||||||
const { id } = props
|
const { id } = props
|
||||||
@ -17,6 +18,37 @@ export default function SettingModal01(props) {
|
|||||||
const canGridOptionSeletorValue = useRecoilValue(canGridOptionSeletor)
|
const canGridOptionSeletorValue = useRecoilValue(canGridOptionSeletor)
|
||||||
const { closePopup } = usePopup()
|
const { closePopup } = usePopup()
|
||||||
|
|
||||||
|
const {
|
||||||
|
canvas,
|
||||||
|
settingModalFirstOptions,
|
||||||
|
setSettingModalFirstOptions,
|
||||||
|
settingsData,
|
||||||
|
setSettingsData,
|
||||||
|
fetchSettings,
|
||||||
|
planSizeSettingMode,
|
||||||
|
setPlanSizeSettingMode,
|
||||||
|
settingModalSecondOptions,
|
||||||
|
setSettingModalSecondOptions,
|
||||||
|
adsorptionPointMode,
|
||||||
|
setAdsorptionPointMode,
|
||||||
|
setAdsorptionRange,
|
||||||
|
gridColor,
|
||||||
|
setGridColor,
|
||||||
|
color,
|
||||||
|
} = useCanvasSetting()
|
||||||
|
const firstProps = { canvas, settingModalFirstOptions, setSettingModalFirstOptions, settingsData, setSettingsData }
|
||||||
|
const secondProps = {
|
||||||
|
fetchSettings,
|
||||||
|
planSizeSettingMode,
|
||||||
|
setPlanSizeSettingMode,
|
||||||
|
settingModalSecondOptions,
|
||||||
|
setSettingModalSecondOptions,
|
||||||
|
adsorptionPointMode,
|
||||||
|
setAdsorptionPointMode,
|
||||||
|
setAdsorptionRange,
|
||||||
|
}
|
||||||
|
const gridProps = { gridColor, setGridColor, color }
|
||||||
|
|
||||||
const handleBtnClick = (num) => {
|
const handleBtnClick = (num) => {
|
||||||
setButtonAct(num)
|
setButtonAct(num)
|
||||||
}
|
}
|
||||||
@ -46,9 +78,9 @@ export default function SettingModal01(props) {
|
|||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
{buttonAct === 1 && <FirstOption />}
|
{buttonAct === 1 && <FirstOption {...firstProps} />}
|
||||||
{buttonAct === 2 && <SecondOption />}
|
{buttonAct === 2 && <SecondOption {...secondProps} />}
|
||||||
{buttonAct === 3 && <GridOption />}
|
{buttonAct === 3 && <GridOption {...gridProps} />}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</WithDraggable>
|
</WithDraggable>
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import {
|
|||||||
settingModalSecondOptionsState,
|
settingModalSecondOptionsState,
|
||||||
settingModalGridOptionsState,
|
settingModalGridOptionsState,
|
||||||
basicSettingState,
|
basicSettingState,
|
||||||
|
settingsState,
|
||||||
} from '@/store/settingAtom'
|
} from '@/store/settingAtom'
|
||||||
import { POLYGON_TYPE } from '@/common/common'
|
import { POLYGON_TYPE } from '@/common/common'
|
||||||
import { globalFontAtom } from '@/store/fontAtom'
|
import { globalFontAtom } from '@/store/fontAtom'
|
||||||
@ -46,7 +47,8 @@ export function useCanvasSetting() {
|
|||||||
|
|
||||||
const [settingModalFirstOptions, setSettingModalFirstOptions] = useRecoilState(settingModalFirstOptionsState)
|
const [settingModalFirstOptions, setSettingModalFirstOptions] = useRecoilState(settingModalFirstOptionsState)
|
||||||
const [settingModalSecondOptions, setSettingModalSecondOptions] = useRecoilState(settingModalSecondOptionsState)
|
const [settingModalSecondOptions, setSettingModalSecondOptions] = useRecoilState(settingModalSecondOptionsState)
|
||||||
const [settingsData, setSettingsData] = useState({ ...settingModalFirstOptions, ...settingModalSecondOptions })
|
|
||||||
|
const [settingsData, setSettingsData] = useRecoilState(settingsState)
|
||||||
const { option1, option2, dimensionDisplay } = settingModalFirstOptions
|
const { option1, option2, dimensionDisplay } = settingModalFirstOptions
|
||||||
const { option4 } = settingModalSecondOptions
|
const { option4 } = settingModalSecondOptions
|
||||||
|
|
||||||
@ -120,10 +122,6 @@ export function useCanvasSetting() {
|
|||||||
canvas?.renderAll()
|
canvas?.renderAll()
|
||||||
}, [corridorDimension])
|
}, [corridorDimension])
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
console.log('🚀 ~ useCanvasSetting ~ settingsData:', settingsData)
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
// 배치면 초기설정 변경 시
|
// 배치면 초기설정 변경 시
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
//console.log('useCanvasSetting canvasSetting 실행', canvasSetting)
|
//console.log('useCanvasSetting canvasSetting 실행', canvasSetting)
|
||||||
@ -132,9 +130,7 @@ export function useCanvasSetting() {
|
|||||||
}
|
}
|
||||||
}, [canvasSetting])
|
}, [canvasSetting])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {}, [settingsData])
|
||||||
console.log('useCanvasSetting ------------->', settingsData)
|
|
||||||
}, [settingsData])
|
|
||||||
|
|
||||||
//흡착점 ON/OFF 변경 시
|
//흡착점 ON/OFF 변경 시
|
||||||
// useEffect(() => {
|
// useEffect(() => {
|
||||||
|
|||||||
@ -77,6 +77,11 @@ export const settingModalSecondOptionsState = atom({
|
|||||||
dangerouslyAllowMutability: true,
|
dangerouslyAllowMutability: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const settingsState = atom({
|
||||||
|
key: 'settingsData',
|
||||||
|
default: { ...settingModalFirstOptionsState, ...settingModalSecondOptionsState },
|
||||||
|
})
|
||||||
|
|
||||||
export const settingModalGridOptionsState = atom({
|
export const settingModalGridOptionsState = atom({
|
||||||
key: 'settingModalGridOptions',
|
key: 'settingModalGridOptions',
|
||||||
default: [
|
default: [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user