52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
import { useRecoilValue } from 'recoil'
|
|
import { corridorDimensionSelector } from '@/store/settingAtom'
|
|
import { canvasState } from '@/store/canvasAtom'
|
|
|
|
export function useText() {
|
|
const canvas = useRecoilValue(canvasState)
|
|
const corridorDimension = useRecoilValue(corridorDimensionSelector)
|
|
|
|
const changeCorridorDimensionText = (columnText) => {
|
|
let { column } = corridorDimension
|
|
if (columnText) {
|
|
column = columnText
|
|
}
|
|
const lengthTexts = canvas.getObjects().filter((obj) => obj.name === 'lengthText')
|
|
const group = canvas.getObjects().filter((obj) => obj.type === 'group')
|
|
group.forEach((obj) => {
|
|
obj._objects
|
|
.filter((obj2) => obj2.name === 'lengthText')
|
|
.forEach((obj3) => {
|
|
lengthTexts.push(obj3)
|
|
})
|
|
})
|
|
|
|
switch (column) {
|
|
case 'corridorDimension':
|
|
lengthTexts.forEach((obj) => {
|
|
if (obj.planeSize) {
|
|
obj.set({ text: obj.planeSize.toString() })
|
|
}
|
|
})
|
|
break
|
|
case 'realDimension':
|
|
lengthTexts.forEach((obj) => {
|
|
if (obj.actualSize) {
|
|
obj.set({ text: obj.actualSize.toString() })
|
|
}
|
|
})
|
|
break
|
|
case 'noneDimension':
|
|
lengthTexts.forEach((obj) => {
|
|
obj.set({ text: '' })
|
|
})
|
|
break
|
|
}
|
|
canvas?.renderAll()
|
|
}
|
|
|
|
return {
|
|
changeCorridorDimensionText,
|
|
}
|
|
}
|