refactor: 글로벌세팅 팝업 저장 로직 수정

This commit is contained in:
nalpari 2024-12-06 11:26:31 +09:00
parent 50d92065c0
commit eee569c37c
2 changed files with 62 additions and 44 deletions

View File

@ -7,7 +7,7 @@ import { useEvent } from '@/hooks/useEvent'
export default function FirstOption() {
const { getMessage } = useMessage()
const { canvas, settingModalFirstOptions, setSettingModalFirstOptions } = useCanvasSetting()
const { canvas, settingModalFirstOptions, setSettingModalFirstOptions, settingsData, setSettingsData } = useCanvasSetting()
const { option1, option2, dimensionDisplay } = settingModalFirstOptions
const { initEvent } = useEvent()
@ -24,13 +24,17 @@ export default function FirstOption() {
return option
})
setSettingModalFirstOptions({ ...settingModalFirstOptions, dimensionDisplay: [...options] })
// ( )
} else if (item.column === 'onlyBorder' || item.column === 'lineHatch' || item.column === 'allPainted') {
const options2 = settingModalFirstOptions?.option2.map((option2) => {
const options = settingModalFirstOptions?.option2.map((option2) => {
option2.selected = option2.id === item.id
return option2
})
setSettingModalFirstOptions({ ...settingModalFirstOptions, option2: [...options] })
const polygons = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
polygons.forEach((polygon) => {
@ -38,10 +42,17 @@ export default function FirstOption() {
})
// ( )
} else {
item.selected = !item.selected
const options = settingModalFirstOptions?.option1.map((opt) => {
if (opt.id === item.id) {
opt.selected = !opt.selected
}
return opt
})
setSettingModalFirstOptions({ ...settingModalFirstOptions, option1: [...options] })
}
setSettingModalFirstOptions({ ...settingModalFirstOptions, option1, option2, dimensionDisplay, fontFlag: true })
setSettingsData({ ...settingsData, ...settingModalFirstOptions })
}
// useEffect(() => {

View File

@ -46,6 +46,7 @@ export function useCanvasSetting() {
const [settingModalFirstOptions, setSettingModalFirstOptions] = useRecoilState(settingModalFirstOptionsState)
const [settingModalSecondOptions, setSettingModalSecondOptions] = useRecoilState(settingModalSecondOptionsState)
const [settingsData, setSettingsData] = useState({ ...settingModalFirstOptions, ...settingModalSecondOptions })
const { option1, option2, dimensionDisplay } = settingModalFirstOptions
const { option4 } = settingModalSecondOptions
@ -120,7 +121,7 @@ export function useCanvasSetting() {
}, [corridorDimension])
useEffect(() => {
console.log('useCanvasSetting 실행1', correntObjectNo)
console.log('🚀 ~ useCanvasSetting ~ settingsData:', settingsData)
}, [])
// 배치면 초기설정 변경 시
@ -131,54 +132,58 @@ export function useCanvasSetting() {
}
}, [canvasSetting])
//흡착점 ON/OFF 변경 시
useEffect(() => {
//console.log('useCanvasSetting 실행2', adsorptionPointMode.fontFlag, correntObjectNo)
if (adsorptionPointMode.fontFlag) {
onClickOption2()
}
}, [adsorptionPointMode])
console.log('useCanvasSetting ------------->', settingsData)
}, [settingsData])
//흡착점 ON/OFF 변경 시
// useEffect(() => {
// //console.log('useCanvasSetting 실행2', adsorptionPointMode.fontFlag, correntObjectNo)
// if (adsorptionPointMode.fontFlag) {
// onClickOption2()
// }
// }, [adsorptionPointMode])
// 1 과 2 변경 시
useEffect(() => {
//console.log('useCanvasSetting 실행3', settingModalFirstOptions.fontFlag, settingModalSecondOptions.fontFlag, correntObjectNo)
if (settingModalFirstOptions.fontFlag || settingModalSecondOptions.fontFlag) {
onClickOption2()
}
}, [settingModalFirstOptions, settingModalSecondOptions])
// useEffect(() => {
// //console.log('useCanvasSetting 실행3', settingModalFirstOptions.fontFlag, settingModalSecondOptions.fontFlag, correntObjectNo)
// if (settingModalFirstOptions.fontFlag || settingModalSecondOptions.fontFlag) {
// onClickOption2()
// }
// }, [settingModalFirstOptions, settingModalSecondOptions])
// 글꼴 변경 시
useEffect(() => {
//console.log('useCanvasSetting 실행4', globalFont.fontFlag, correntObjectNo)
if (globalFont.fontFlag) {
onClickOption2()
}
}, [globalFont])
// useEffect(() => {
// //console.log('useCanvasSetting 실행4', globalFont.fontFlag, correntObjectNo)
// if (globalFont.fontFlag) {
// onClickOption2()
// }
// }, [globalFont])
// 도명크기 변경 시
useEffect(() => {
//console.log('useCanvasSetting 실행5', planSizeSettingMode.flag, correntObjectNo)
if (planSizeSettingMode.flag) {
onClickOption2()
}
}, [planSizeSettingMode])
// useEffect(() => {
// //console.log('useCanvasSetting 실행5', planSizeSettingMode.flag, correntObjectNo)
// if (planSizeSettingMode.flag) {
// onClickOption2()
// }
// }, [planSizeSettingMode])
// 점/선 그리드 변경 시
useEffect(() => {
//console.log('useCanvasSetting 실행6', dotLineGridSetting.flag)
if (dotLineGridSetting.flag) {
onClickOption2()
}
}, [dotLineGridSetting])
// useEffect(() => {
// //console.log('useCanvasSetting 실행6', dotLineGridSetting.flag)
// if (dotLineGridSetting.flag) {
// onClickOption2()
// }
// }, [dotLineGridSetting])
// 그리드 색 설정 변경 시
useEffect(() => {
console.log('useCanvasSetting 실행7', colorTemp, gridColor)
//colorTemp는 변경 전.. 값이 있고 변경된 컬러와 다를 때 실행
if (colorTemp !== undefined && colorTemp !== gridColor) {
onClickOption2()
}
}, [color])
// useEffect(() => {
// console.log('useCanvasSetting 실행7', colorTemp, gridColor)
// //colorTemp는 변경 전.. 값이 있고 변경된 컬러와 다를 때 실행
// if (colorTemp !== undefined && colorTemp !== gridColor) {
// onClickOption2()
// }
// }, [color])
const getFonts = (itemValue) => {
if (!itemValue) return { id: 1, name: 'MS PGothic', value: 'MS PGothic' }
@ -491,7 +496,7 @@ export function useCanvasSetting() {
}
// CanvasSetting 옵션 클릭 후 저장
const onClickOption2 = useCallback(async () => {
const onClickOption2 = async () => {
// 서버에 전송할 데이터
const dataToSend = {
firstOption1: option1.map((item) => ({
@ -613,7 +618,7 @@ export function useCanvasSetting() {
})
//setAdsorptionRange(item.range)
}, [settingModalFirstOptions, settingModalSecondOptions, adsorptionPointMode, globalFont, planSizeSettingMode, dotLineGridSetting, color])
}
// Canvas 디스플레이 설정 시 해당 옵션 적용
const frontSettings = async () => {
@ -734,5 +739,7 @@ export function useCanvasSetting() {
setBasicSettings,
fetchBasicSettings,
basicSettingSave,
settingsData,
setSettingsData,
}
}