unmount시 clone line 삭제

This commit is contained in:
김민식 2025-03-04 10:37:07 +09:00
parent 3e3ec323c4
commit 4953ebb0d9

View File

@ -47,8 +47,14 @@ export function useRoofLinePropertySetting(props) {
} }
}, [currentObject]) }, [currentObject])
useEffect(() => {
return () => {
canvas.remove(...canvas.getObjects().filter((obj) => obj.name === 'cloneRoofLine'))
canvas.renderAll()
}
}, [])
const roofLinesInit = () => { const roofLinesInit = () => {
console.log('🚀 ~ roofLinesInit ~ roof:', roof)
roof.lines.forEach((line) => { roof.lines.forEach((line) => {
line.clone((cloned) => { line.clone((cloned) => {
cloned.set({ cloned.set({
@ -62,6 +68,9 @@ export function useRoofLinePropertySetting(props) {
}) })
line.set({ line.set({
visible: false, visible: false,
attributes: {
...line.attributes,
},
}) })
canvas.add(cloned) canvas.add(cloned)
cloned.bringToFront() cloned.bringToFront()
@ -142,7 +151,6 @@ export function useRoofLinePropertySetting(props) {
const handleFix = () => { const handleFix = () => {
// const roof = canvas.getObjects().find((obj) => currentObject.parentId === obj.id) // const roof = canvas.getObjects().find((obj) => currentObject.parentId === obj.id)
// const notSettingLines = roof.lines.filter( // const notSettingLines = roof.lines.filter(
console.log(canvas.getObjects().filter((obj) => obj.name === 'cloneRoofLine'))
const notSettingLines = canvas const notSettingLines = canvas
.getObjects() .getObjects()
.filter((obj) => obj.name === 'cloneRoofLine') .filter((obj) => obj.name === 'cloneRoofLine')
@ -188,7 +196,6 @@ export function useRoofLinePropertySetting(props) {
// const roof = canvas.getObjects().find((obj) => currentObject.parentId === obj.id) // const roof = canvas.getObjects().find((obj) => currentObject.parentId === obj.id)
// const lines = roof?.lines // const lines = roof?.lines
const lines = canvas.getObjects().filter((obj) => obj.name === 'cloneRoofLine') const lines = canvas.getObjects().filter((obj) => obj.name === 'cloneRoofLine')
console.log('🚀 ~ nextLineFocus ~ lines:', lines)
if (!lines) return if (!lines) return
const index = lines.findIndex((line) => line === selectedLine) const index = lines.findIndex((line) => line === selectedLine)