Merge branch 'dev' of ssh://git.jetbrains.space/nalpari/q-cast-iii/qcast-front into dev

# Conflicts:
#	src/hooks/common/useCanvasPopupStatusController.js
This commit is contained in:
김민식 2025-02-08 17:53:47 +09:00
commit ffcd3e0131
5 changed files with 34 additions and 14 deletions

View File

@ -34,7 +34,7 @@ export default function CanvasFrame() {
const currentMenu = useRecoilValue(currentMenuState)
const { floorPlanState } = useContext(FloorPlanContext)
const { contextMenu, handleClick } = useContextMenu()
const { plans, currentCanvasPlan } = usePlan()
const { plans, currentCanvasPlan, resetCanvasStatus } = usePlan()
const totalDisplay = useRecoilValue(totalDisplaySelector) //
const { setIsGlobalLoading } = useContext(QcastContext)
const resetModuleStatisticsState = useResetRecoilState(moduleStatisticsState)
@ -45,8 +45,10 @@ export default function CanvasFrame() {
const resetSelectedModelsState = useResetRecoilState(selectedModelsState)
const resetPcsCheckState = useResetRecoilState(pcsCheckState)
const { handleModuleSelectionTotal } = useCanvasPopupStatusController()
const loadCanvas = () => {
if (canvas) {
if (!canvas) return
canvas?.clear() // .
if (currentCanvasPlan) {
const plan = plans.find((plan) => plan.id === currentCanvasPlan.id)
@ -59,7 +61,6 @@ export default function CanvasFrame() {
}
gridInit()
}
}
useEffect(() => {
loadCanvas()
@ -69,6 +70,11 @@ export default function CanvasFrame() {
useEffect(() => {
setIsGlobalLoading(false)
return () => {
canvas?.clear()
resetCanvasStatus()
}
}, [])
const resetRecoilData = () => {

View File

@ -50,6 +50,7 @@ export function useCanvasPopupStatusController(param = 1) {
for (let i = 1; i < 3; i++) {
const result = await getModuleSelection(i)
// setModuleSelectionTotal((prev) => ({ ...prev, [i]: JSON.parse(unescapeString(result.popupStatus)) }))
if(!result) return
if (i === 1) {
setCompasDeg(result.popupStatus)
} else if (i === 2) {

View File

@ -319,7 +319,7 @@ export function useRoofAllocationSetting(id) {
}
const apply = () => {
const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF && !obj.roofMaterial)
const wallLines = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.WALL)
roofBases.forEach((roofBase) => {
try {

View File

@ -425,7 +425,11 @@ export function useRoofShapeSetting(id) {
const removeTargets = canvas
.getObjects()
.filter((obj) => (obj.name === 'pitchText' || obj.name === 'lengthText') && outerLines.map((id) => id).includes(obj.parentId))
.filter(
(obj) =>
(obj.name === 'pitchText' || obj.name === 'lengthText') &&
canvas.getObjects().find((parent) => parent.id === obj.parentId)?.name !== POLYGON_TYPE.ROOF,
)
removeTargets.forEach((obj) => {
canvas.remove(obj)
})

View File

@ -407,6 +407,14 @@ export function usePlan(params = {}) {
})
}
/**
* plan canvasStatus 초기화
*/
const resetCanvasStatus = () => {
setCurrentCanvasPlan((prev) => ({ ...prev, canvasStatus: null }))
setPlans((plans) => plans.map((plan) => ({ ...plan, canvasStatus: null })))
}
/**
* 현재 plan 이동 -> 새로운 링크로 이동
*/
@ -425,5 +433,6 @@ export function usePlan(params = {}) {
handleAddPlan,
handleDeletePlan,
loadCanvasPlanData,
resetCanvasStatus,
}
}