From 12ff35664006048d87035d4c3dcfb102f1d98e7d Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Fri, 14 Feb 2025 11:15:26 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=BDchore:=20=EC=86=8C=EC=8A=A4?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 사용하지 않는 코드 삭제 - 사용되지 않은 임포트 구문 삭제 --- src/app/GlobalDataProvider.js | 20 ------ src/app/QcastProvider.js | 7 --- src/components/InitSettingsModal.jsx | 2 - .../common/useCanvasPopupStatusController.js | 63 ++----------------- src/hooks/common/useCommonUtils.js | 22 ------- src/hooks/common/useRefFiles.js | 56 +++-------------- src/hooks/floorPlan/useImgLoader.js | 7 ++- src/middleware.js | 11 ---- 8 files changed, 20 insertions(+), 168 deletions(-) diff --git a/src/app/GlobalDataProvider.js b/src/app/GlobalDataProvider.js index 4f6eabca..42c55fd8 100644 --- a/src/app/GlobalDataProvider.js +++ b/src/app/GlobalDataProvider.js @@ -3,32 +3,12 @@ import { createContext, useEffect, useState } from 'react' import { useLocalStorage } from 'usehooks-ts' -// export const GlobalDataContext = createContext({ -// managementState: {}, -// setManagementState: () => {}, -// managementStateLoaded: null, -// }) export const GlobalDataContext = createContext(null) const GlobalDataProvider = ({ children }) => { const [managementState, setManagementState] = useState(null) - // TODO: 임시 조치이며 개발 완료시 삭제 예정 -> 잊지말기... const [managementStateLoaded, setManagementStateLoaded] = useLocalStorage('managementStateLoaded', null) - // const pathname = usePathname() - // const setCorrentObjectNo = useSetRecoilState(correntObjectNoState) - // const searchParams = useSearchParams() - // const objectNo = searchParams.get('objectNo') - // const pid = searchParams.get('pid') - // useEffect(() => { - // if (pathname === '/floor-plan') { - // if (pid === undefined || pid === '' || pid === null || objectNo === undefined || objectNo === '' || objectNo === null) { - // notFound() - // } - // setCorrentObjectNo(objectNo) - // } - // }, [pathname]) - useEffect(() => { if (managementState !== null) { setManagementStateLoaded(managementState) diff --git a/src/app/QcastProvider.js b/src/app/QcastProvider.js index 73911177..fd2e3770 100644 --- a/src/app/QcastProvider.js +++ b/src/app/QcastProvider.js @@ -15,9 +15,7 @@ export const QcastContext = createContext({ }) export const QcastProvider = ({ children }) => { - const [planSave, setPlanSave] = useState(false) const [isGlobalLoading, setIsGlobalLoading] = useState(true) - const { commonCode, findCommonCode } = useCommonCode() const [qcastState, setQcastState] = useState({ saleStoreId: '', @@ -27,11 +25,6 @@ export const QcastProvider = ({ children }) => { businessChargerMail: null, }) - // useEffect(() => { - // console.log('commonCode', commonCode) - // console.log(findCommonCode(113600)) - // }, [commonCode, findCommonCode]) - return ( <> diff --git a/src/components/InitSettingsModal.jsx b/src/components/InitSettingsModal.jsx index 52c82e86..4cfc483d 100644 --- a/src/components/InitSettingsModal.jsx +++ b/src/components/InitSettingsModal.jsx @@ -26,8 +26,6 @@ export default function InitSettingsModal(props) { const { get, post } = useAxios() - //const { get, post } = useAxios() - useEffect(() => { get({ url: `/api/canvas-management/canvas-basic-settings/by-object/${objectNo}` }).then((res) => { if (res.length == 0) return diff --git a/src/hooks/common/useCanvasPopupStatusController.js b/src/hooks/common/useCanvasPopupStatusController.js index c6be7f9c..22de7b76 100644 --- a/src/hooks/common/useCanvasPopupStatusController.js +++ b/src/hooks/common/useCanvasPopupStatusController.js @@ -1,16 +1,19 @@ 'use client' import { useRecoilState, useRecoilValue } from 'recoil' -import useSWR from 'swr' import useSWRMutation from 'swr/mutation' import { useAxios } from '../useAxios' import { unescapeString } from '@/util/common-utils' -import { moduleSelectionDataState, moduleSelectionTotalState, selectedModuleOptionsState, selectedModuleState } from '@/store/selectedModuleOptions' +import { moduleSelectionDataState, selectedModuleState } from '@/store/selectedModuleOptions' import { compasDegAtom } from '@/store/orientationAtom' import { canvasState, currentCanvasPlanState } from '@/store/canvasAtom' import { POLYGON_TYPE } from '@/common/common' -import { DateRangePickerField } from '@nextui-org/react' +/** + * 캔버스 팝업 상태 관리 + * @param {*} param + * @returns + */ export function useCanvasPopupStatusController(param = 1) { const popupType = parseInt(param) @@ -20,7 +23,6 @@ export function useCanvasPopupStatusController(param = 1) { const { get, promiseGet, getFetcher, postFetcher } = useAxios() const canvas = useRecoilValue(canvasState) const currentCanvasPlan = useRecoilValue(currentCanvasPlanState) - // console.log('🚀 ~ Orientation ~ currentCanvasPlan:', currentCanvasPlan) /** * 팝업 상태 조회 @@ -28,15 +30,6 @@ export function useCanvasPopupStatusController(param = 1) { * @returns */ const getModuleSelection = async (popupTypeParam) => { - // const { - // data: popupStatus, - // error, - // isLoading, - // } = useSWR( - // `/api/v1/canvas-popup-status?objectNo=${currentCanvasPlan.objectNo}&planNo=${currentCanvasPlan.planNo}&popupType=${popupTypeParam}`, - // getFetcher, - // ) - const result = await promiseGet({ url: `/api/v1/canvas-popup-status?objectNo=${currentCanvasPlan.objectNo}&planNo=${currentCanvasPlan.planNo}&popupType=${popupTypeParam}`, }) @@ -59,7 +52,6 @@ export function useCanvasPopupStatusController(param = 1) { for (let i = 1; i < 3; i++) { const result = await getModuleSelection(i) console.log('🚀 ~ handleModuleSelectionTotal ~ result:', result) - // setModuleSelectionTotal((prev) => ({ ...prev, [i]: JSON.parse(unescapeString(result.popupStatus)) })) if (!result.objectNo) return if (i === 1) { setCompasDeg(result.popupStatus) @@ -77,49 +69,6 @@ export function useCanvasPopupStatusController(param = 1) { } } - // useEffect(() => { - // if (popupStatus) { - // switch (parseInt(popupStatus?.popupType)) { - // case 1: - // setCompasDeg(popupStatus.popupStatus) - // break - // case 2: - // setModuleSelectionDataStore(JSON.parse(unescapeString(popupStatus.popupStatus))) - // break - // case 3: - // break - // case 4: - // break - // case 5: - // break - // case 6: - // break - // default: - // } - // } else { - // switch (popupType) { - // case 1: - // setCompasDeg(0) - // break - // case 2: - // setModuleSelectionDataStore({ - // common: {}, - // roofConstructions: [], - // }) - // break - // case 3: - // break - // case 4: - // break - // case 5: - // break - // case 6: - // break - // default: - // } - // } - // }, [popupStatus]) - /** * 팝업 상태 저장 */ diff --git a/src/hooks/common/useCommonUtils.js b/src/hooks/common/useCommonUtils.js index baaa7dfe..60bbb9ec 100644 --- a/src/hooks/common/useCommonUtils.js +++ b/src/hooks/common/useCommonUtils.js @@ -15,7 +15,6 @@ export function useCommonUtils() { const canvas = useRecoilValue(canvasState) const wordDisplay = useRecoilValue(wordDisplaySelector) const { addCanvasMouseEventListener, addDocumentEventListener, initEvent } = useEvent() - // const { addCanvasMouseEventListener, addDocumentEventListener, initEvent } = useContext(EventContext) const dimensionSettings = useRecoilValue(dimensionLineSettingsState) const dimensionLineTextFont = useRecoilValue(fontSelector('dimensionLineText')) const commonTextFont = useRecoilValue(fontSelector('commonText')) @@ -24,7 +23,6 @@ export function useCommonUtils() { const { drawDirectionArrow, addLengthText } = usePolygon() useEffect(() => { - // initEvent() if (commonUtils.text) { commonTextMode() } else if (commonUtils.dimension) { @@ -247,15 +245,12 @@ export function useCommonUtils() { name: 'extendLine', id: uuid, }) - // canvas.add(extendLine) groupObjects.push(extendLine) }) const dimensionPosition = calcDimensionPosition(lineDirection, p1CenterX, p1CenterY, p2CenterX, p2CenterY) const arrow1 = createDimensionArrow(dimensionPosition.paddingX, dimensionPosition.paddingY, dimensionPosition.angle1, uuid) // 반대 방향 화살표 const arrow2 = createDimensionArrow(dimensionPosition.paddingX2, dimensionPosition.paddingY2, dimensionPosition.angle2, uuid) // 정방향 화살표 - // canvas.add(arrow1) - // canvas.add(arrow2) groupObjects.push(arrow1, arrow2) @@ -310,23 +305,6 @@ export function useCommonUtils() { // 캔버스 다시 그리기 canvas.renderAll() }) - - // addCanvasMouseEventListener('object:moving', function (e) { - // const obj = e.target - - // if (obj.left < minX) { - // obj.left = minX - // } - // if (obj.left + obj.width > maxX) { - // obj.left = maxX - obj.width - // } - // if (obj.top < minY) { - // obj.top = minY - // } - // if (obj.top + obj.height > maxY) { - // obj.top = maxY - obj.height - // } - // }) } } diff --git a/src/hooks/common/useRefFiles.js b/src/hooks/common/useRefFiles.js index d7931d36..992c1319 100644 --- a/src/hooks/common/useRefFiles.js +++ b/src/hooks/common/useRefFiles.js @@ -1,12 +1,16 @@ import { useEffect, useRef, useState } from 'react' -import { useRecoilState, useRecoilValue } from 'recoil' +import { useRecoilState } from 'recoil' import { useSwal } from '@/hooks/useSwal' import { useAxios } from '../useAxios' -import { canvasState, currentCanvasPlanState } from '@/store/canvasAtom' -import { convertDwgToPng, removeImage, writeImageBuffer, readImage } from '@/lib/fileAction' +import { currentCanvasPlanState } from '@/store/canvasAtom' import { useCanvas } from '@/hooks/useCanvas' +/** + * 배경 이미지 관리 + * 도면에 배경이미지를 로딩하는 기능을 제공 + * @returns {object} + */ export function useRefFiles() { const converterUrl = process.env.NEXT_PUBLIC_CONVERTER_API_URL const [refImage, setRefImage] = useState(null) @@ -15,33 +19,18 @@ export function useRefFiles() { const [currentBgImage, setCurrentBgImage] = useState(null) const queryRef = useRef(null) const [currentCanvasPlan, setCurrentCanvasPlan] = useRecoilState(currentCanvasPlanState) - // const canvas = useRecoilValue(canvasState) - const { canvas, handleBackImageLoadToCanvas } = useCanvas() + const { handleBackImageLoadToCanvas } = useCanvas() const { swalFire } = useSwal() - const { get, post, promisePost } = useAxios() + const { get, post } = useAxios() useEffect(() => { if (refFileMethod === '1') { - // 파일 불러오기 setMapPositionAddress('') } else { setRefImage(null) } }, [refFileMethod]) - /** - * 현재 플랜이 변경되면 플랜 상태 저장 - */ - useEffect(() => { - // console.log('🚀 ~ useRefFiles ~ currentCanvasPlan:', currentCanvasPlan) - // const handleCurrentPlan = async () => { - // await promisePut({ url: '/api/canvas-management/canvas-statuses', data: currentCanvasPlan }).then((res) => { - // console.log('🚀 ~ awaitpromisePut ~ res:', res) - // }) - // } - // handleCurrentPlan() - }, [currentCanvasPlan]) - /** * 파일 불러오기 버튼 컨트롤 * @param {*} file @@ -56,8 +45,6 @@ export function useRefFiles() { type: 'confirm', confirmFn: () => { refFileSetting(file) - // setRefImage(file) - // file.name.split('.').pop() === 'dwg' ? handleUploadConvertRefFile(file) : handleUploadImageRefFile(file) }, }) } else { @@ -71,7 +58,6 @@ export function useRefFiles() { handleUploadConvertRefFile(file) } else { if (file && ['image/png', 'image/jpg', 'image/jpeg', 'image/bmp', 'image/gif'].includes(file.type)) { - // file.name.split('.').pop() === 'dwg' ? handleUploadConvertRefFile(file) : handleUploadImageRefFile(file) handleUploadImageRefFile(file) } else { swalFire({ @@ -82,6 +68,7 @@ export function useRefFiles() { } } } + /** * 파일 삭제 */ @@ -92,9 +79,6 @@ export function useRefFiles() { confirmFn: () => { setRefImage(null) setCurrentCanvasPlan((prev) => ({ ...prev, bgImageName: null })) - // removeImage(currentCanvasPlan.id).then((res) => { - // console.log(res) - // }) }, }) } @@ -110,9 +94,6 @@ export function useRefFiles() { setMapPositionAddress('') setCurrentBgImage(null) setCurrentCanvasPlan((prev) => ({ ...prev, mapPositionAddress: null })) - // removeImage(currentCanvasPlan.id).then((res) => { - // console.log(res) - // }) }, }) } @@ -130,9 +111,6 @@ export function useRefFiles() { url: `${process.env.NEXT_PUBLIC_HOST_URL}/map/convert?q=${queryRef.current.value}&fileNm=${currentCanvasPlan.id}&zoom=20`, }) console.log('🚀 ~ handleMapImageDown ~ res:', res) - // const file = await readImage(res.fileNm) - // console.log('🚀 ~ handleMapImageDown ~ file:', file) - // setCurrentBgImage(file) setCurrentBgImage(`${process.env.NEXT_PUBLIC_HOST_URL}${res.filePath}`) } @@ -144,7 +122,6 @@ export function useRefFiles() { return } console.log('🚀 ~ useEffect ~ currentBgImage:', currentBgImage) - // handleBackImageLoadToCanvas(`plan-images/${currentCanvasPlan.id}.png`) handleBackImageLoadToCanvas(currentBgImage) setCurrentCanvasPlan((prev) => ({ ...prev, @@ -160,16 +137,12 @@ export function useRefFiles() { const handleUploadImageRefFile = async (file) => { const formData = new FormData() formData.append('file', file) - // formData.append('fileName', currentCanvasPlan.id) - // const res = await post({ url: `${process.env.NEXT_PUBLIC_API_SERVER_PATH}/api/image-upload`, data: formData }) const res = await post({ url: `${process.env.NEXT_PUBLIC_HOST_URL}/image/upload`, data: formData, }) console.log('🚀 ~ handleUploadImageRefFile ~ res:', res) - // const image = await readImage(res.filePath) - // console.log('🚀 ~ handleUploadImageRefFile ~ file:', image) setCurrentBgImage(`${process.env.NEXT_PUBLIC_HOST_URL}${res.filePath}`) setRefImage(file) } @@ -191,15 +164,6 @@ export function useRefFiles() { console.log('🚀 ~ handleUploadConvertRefFile ~ result:', result) setCurrentBgImage(`${process.env.NEXT_PUBLIC_HOST_URL}${result.filePath}`) setRefImage(res.Files[0].FileData) - // await promisePost({ url: converterUrl, data: formData }) - // .then((res) => { - // convertDwgToPng(res.data.Files[0].FileName, res.data.Files[0].FileData) - // swalFire({ text: '파일 변환 성공' }) - // setRefImage(res.data.Files[0].FileData) - // }) - // .catch((err) => { - // swalFire({ text: '파일 변환 실패', icon: 'error' }) - // }) } /** diff --git a/src/hooks/floorPlan/useImgLoader.js b/src/hooks/floorPlan/useImgLoader.js index 15fdd2f7..e51a4a2b 100644 --- a/src/hooks/floorPlan/useImgLoader.js +++ b/src/hooks/floorPlan/useImgLoader.js @@ -1,6 +1,5 @@ import { useRecoilValue } from 'recoil' import { canvasState } from '@/store/canvasAtom' -import { useCanvas } from '../useCanvas' import { useAxios } from '../useAxios' import { usePlan } from '../usePlan' import { POLYGON_TYPE } from '@/common/common' @@ -9,6 +8,8 @@ import { useContext } from 'react' /** * 이미지 로더 hook + * 캔버스를 바이너리로 변환하고 이미지 객체에 붙여서 다시 이미지를 바이너리로 전달 + * 캔버스 데이터가 바이너리로 변경되면 용량이 너무 커서 post전송에 실패할 수 있음 * @returns {function} handleCanvasToPng */ export function useImgLoader() { @@ -67,7 +68,7 @@ export function useImgLoader() { formData.append('objectNo', currentCanvasPlan.objectNo) formData.append('planNo', currentCanvasPlan.planNo) formData.append('type', type) - // formData.append('coordinates', getImageCoordinates()) + /** 이미지 크롭 좌표 계산 */ const positionObj = getImageCoordinates() console.log('🚀 ~ handleCanvasToPng ~ positionObj:', positionObj) formData.append('width', Math.round(positionObj[1].x - positionObj[0].x + 100)) @@ -76,7 +77,7 @@ export function useImgLoader() { formData.append('top', Math.round(positionObj[0].y)) console.log('🚀 ~ handleCanvasToPng ~ formData:', formData) - // 이미지 크롭 요청 + /** 이미지 크롭 요청 */ const result = await post({ url: `${process.env.NEXT_PUBLIC_HOST_URL}/image/canvas`, data: formData, diff --git a/src/middleware.js b/src/middleware.js index c9e6811c..80b747ae 100644 --- a/src/middleware.js +++ b/src/middleware.js @@ -1,14 +1,3 @@ -// import { createI18nMiddleware } from 'next-international/middleware' - -// const I18nMiddleware = createI18nMiddleware({ -// locales: ['ko', 'ja'], -// defaultLocale: 'ko', -// }) - -// export function middleware(request) { -// return I18nMiddleware(request) -// } - export const config = { matcher: ['/((?!api|static|.*\\..*|_next|favicon.ico|robots.txt).*)'], }