캔버스 로딩 후 초기화 작업 추가

This commit is contained in:
yjnoh 2024-10-24 12:23:45 +09:00
parent e86519211a
commit 0845259945
4 changed files with 38 additions and 9 deletions

View File

@ -10,6 +10,7 @@ import { useRecoilValue } from 'recoil'
import { currentObjectState } from '@/store/canvasAtom' import { currentObjectState } from '@/store/canvasAtom'
import { useCanvasEvent } from '@/hooks/useCanvasEvent' import { useCanvasEvent } from '@/hooks/useCanvasEvent'
import QContextMenu from '@/components/common/context-menu/QContextMenu' import QContextMenu from '@/components/common/context-menu/QContextMenu'
import { useCanvasConfigInitialize } from '@/hooks/common/useCanvasConfigInitialize'
export default function CanvasFrame({ plan }) { export default function CanvasFrame({ plan }) {
const canvasRef = useRef(null) const canvasRef = useRef(null)
@ -21,7 +22,7 @@ export default function CanvasFrame({ plan }) {
}, },
}) })
const { checkCanvasObjectEvent, checkUnsavedCanvasPlan } = usePlan() const { checkCanvasObjectEvent, checkUnsavedCanvasPlan } = usePlan()
const { canvasLoadInit } = useCanvasConfigInitialize()
const currentObject = useRecoilValue(currentObjectState) const currentObject = useRecoilValue(currentObjectState)
useEvent() useEvent()
@ -32,6 +33,7 @@ export default function CanvasFrame({ plan }) {
if (plan?.canvasStatus) { if (plan?.canvasStatus) {
canvas?.loadFromJSON(JSON.parse(plan.canvasStatus), function () { canvas?.loadFromJSON(JSON.parse(plan.canvasStatus), function () {
canvas?.renderAll() // . canvas?.renderAll() // .
canvasLoadInit() //config
}) })
} }
} }

View File

@ -69,7 +69,6 @@ export default function CanvasMenu(props) {
}) })
const { commonFunctions } = useCommonUtils({ const { commonFunctions } = useCommonUtils({
canvas,
commonFunctionState, commonFunctionState,
setCommonFunctionState, setCommonFunctionState,
}) })

View File

@ -0,0 +1,32 @@
import { use, useEffect } from 'react'
import { useRecoilValue } from 'recoil'
import { settingModalFirstOptionsState } from '@/store/settingAtom'
import { canvasState } from '@/store/canvasAtom'
import { setSurfaceShapePattern } from '@/util/canvas-util'
export function useCanvasConfigInitialize() {
const canvas = useRecoilValue(canvasState)
const settingModalFirstOptions = useRecoilValue(settingModalFirstOptionsState)
const canvasLoadInit = () => {
roofInit() //화면표시 초기화
}
//치수표시, 화면표시, 글꼴등 초기화
const roofInit = () => {
if (canvas) {
const roofDisplay = settingModalFirstOptions.option2.filter((item) => item.selected)
canvas
.getObjects()
.filter((polygon) => polygon.name === 'roof')
.forEach((polygon) => {
setSurfaceShapePattern(polygon, roofDisplay[0].column)
})
canvas.renderAll()
}
}
return { canvasLoadInit }
}

View File

@ -5,8 +5,10 @@ import { useEvent } from '@/hooks/useEvent'
import { checkLineOrientation, getDistance, setSurfaceShapePattern } from '@/util/canvas-util' import { checkLineOrientation, getDistance, setSurfaceShapePattern } from '@/util/canvas-util'
import { dimensionLineSettingsState } from '@/store/commonUtilsAtom' import { dimensionLineSettingsState } from '@/store/commonUtilsAtom'
import { fontSelector } from '@/store/fontAtom' import { fontSelector } from '@/store/fontAtom'
import { canvasState } from '@/store/canvasAtom'
export function useCommonUtils({ canvas, commonFunctionState, setCommonFunctionState }) { export function useCommonUtils({ commonFunctionState, setCommonFunctionState }) {
const canvas = useRecoilValue(canvasState)
const wordDisplay = useRecoilValue(wordDisplaySelector) const wordDisplay = useRecoilValue(wordDisplaySelector)
const { addCanvasMouseEventListener, addDocumentEventListener, initEvent } = useEvent() const { addCanvasMouseEventListener, addDocumentEventListener, initEvent } = useEvent()
const dimensionSettings = useRecoilValue(dimensionLineSettingsState) const dimensionSettings = useRecoilValue(dimensionLineSettingsState)
@ -24,11 +26,6 @@ export function useCommonUtils({ canvas, commonFunctionState, setCommonFunctionS
} }
}, [commonFunctionState, dimensionSettings, commonTextFont, dimensionLineTextFont]) }, [commonFunctionState, dimensionSettings, commonTextFont, dimensionLineTextFont])
const loadDataInitialize = () => {
const roofs = canvas.getObjects().filter((obj) => obj.name === 'roof')
roofs.forEach((roof) => {})
}
const commonTextMode = () => { const commonTextMode = () => {
let textbox let textbox
if (commonFunctionState.text) { if (commonFunctionState.text) {
@ -378,6 +375,5 @@ export function useCommonUtils({ canvas, commonFunctionState, setCommonFunctionS
return { return {
commonFunctions, commonFunctions,
dimensionSettings, dimensionSettings,
loadDataInitialize,
} }
} }