From dd5cc804b348fff89407ba916cb3bd8bdea94b74 Mon Sep 17 00:00:00 2001
From: changkyu choi
Date: Wed, 11 Sep 2024 13:26:33 +0900
Subject: [PATCH 1/3] =?UTF-8?q?=EB=B0=B0=EC=B9=98=EB=A9=B4=20=EC=84=A4?=
=?UTF-8?q?=EC=A0=95=20=ED=99=94=EB=A9=B4=EC=84=A4=EA=B3=84=EC=84=9C=20?=
=?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EC=88=98?=
=?UTF-8?q?=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/InitSettingsModal.jsx | 89 ++--------------------------
1 file changed, 6 insertions(+), 83 deletions(-)
diff --git a/src/components/InitSettingsModal.jsx b/src/components/InitSettingsModal.jsx
index 5a6aad64..58f0163f 100644
--- a/src/components/InitSettingsModal.jsx
+++ b/src/components/InitSettingsModal.jsx
@@ -9,8 +9,7 @@ import { useAxios } from '@/hooks/useAxios'
import { get, post } from '@/lib/Axios'
export default function InitSettingsModal(props) {
- const [objectNo, setObjectNo] = useState('test123240909002') // 후에 삭제 필요
- const [lastRoofSeq, setLastRoofSeq] = useState(0) // 마지막 roofSeq를 추적
+ const [objectNo, setObjectNo] = useState('test123240909003') // 후에 삭제 필요
const [open, setOpen] = useRecoilState(modalState)
const [canvasSetting, setCanvasSetting] = useRecoilState(canvasSettingState)
const [roofMaterials, setRoofMaterials] = useState([])
@@ -18,7 +17,7 @@ export default function InitSettingsModal(props) {
roofDrawingSet: '1',
roofSizeSet: '1',
roofAngleSet: 'slope',
- roofs: [],
+ roofs: [{ roofSeq: '1', roofType: '3', roofWidth: '200', roofHeight: '200', roofGap: '0', roofLayout: 'parallel' }],
})
const modelProps = {
@@ -49,7 +48,8 @@ export default function InitSettingsModal(props) {
})
const roofsArray = res.some((item) => !item.roofSeq)
- ? null //지붕재 추가 정보가 없다면 roofsArray를 null 처리하여 지붕재 추가 정보가 보이지 않게 한다.
+ ? //최초 지붕재 추가 정보의 경우 roofsArray를 초기화 설정
+ [{ roofSeq: '1', roofType: '3', roofWidth: '200', roofHeight: '200', roofGap: '0', roofLayout: 'parallel' }]
: res.map((item) => ({
roofSeq: String(item.roofSeq),
roofType: String(item.roofType),
@@ -69,14 +69,6 @@ export default function InitSettingsModal(props) {
// 데이터 설정
setBasicSettings({ ...patternData })
-
- // 초기 roofSeq 값을 업데이트
- if (roofsArray == null) {
- //roofs(지붕재추가) 값이 없으면 lastRoofSeq는 1 설정
- setLastRoofSeq(1)
- } else {
- setLastRoofSeq(roofsArray.length + 1)
- }
})
if (!(Object.keys(canvasSetting).length === 0 && canvasSetting.constructor === Object)) {
@@ -90,41 +82,8 @@ export default function InitSettingsModal(props) {
setBasicSettings(newBasicSetting)
}
- //배열 추가 함수
- const addRoofSetting = () => {
- if (basicSetting.roofs != null && basicSetting.roofs.length === 4) {
- alert('지붕재는 최대 4종까지 선택할 수 있습니다.')
- return
- }
-
- //roofs가 null인 경우 배열 생성
- if (basicSetting.roofs == null) {
- basicSetting.roofs = []
- }
-
- //기본값
- const newRoofSettings = {
- //roofSeq: basicSetting.roofs.length + 1,
- roofSeq: lastRoofSeq, // 마지막 roofSeq를 1 증가
- roofType: '3',
- roofWidth: '200',
- roofHeight: '200',
- roofGap: '0',
- roofLayout: 'parallel',
- }
-
- setBasicSettings((prevState) => ({
- ...prevState,
- roofs: [...prevState.roofs, newRoofSettings],
- }))
-
- setLastRoofSeq(newRoofSettings.roofSeq + 1) // roofSeq 값을 업데이트
- }
-
//배열 값 변경 함수
const handleRoofSettings = (id, event) => {
- console.log(id)
-
// 기본 세팅에서 roofs 배열을 복사
const updatedRoofs = [...basicSetting.roofs]
@@ -144,13 +103,6 @@ export default function InitSettingsModal(props) {
roofs: updatedRoofs,
}))
}
-
- // const roof = basicSetting.roofs.map((roof, i) => (id === roof.roofSeq ? { ...roof, [event.target.name]: event.target.value } : roof))
-
- // setBasicSettings((prevState) => ({
- // ...prevState,
- // roofs: [...roof],
- // }))
}
//저장
@@ -176,17 +128,6 @@ export default function InitSettingsModal(props) {
//await handleSelect()
}
- // 삭제버튼 클릭시 해당 요소 id를 targetId로 전달받음
- const onRemove = async (targetId) => {
- console.log(targetId)
-
- setBasicSettings((prevState) => ({
- ...prevState,
- roofs: prevState.roofs.filter((roof) => roof.roofSeq !== targetId),
- }))
- // setBasicSettings({ ...newRoofSettings }) // 삭제한 데이터 배열을 setData()에 상태를 변화시킴
- }
-
return (
<>
@@ -236,15 +177,7 @@ export default function InitSettingsModal(props) {
-
- 지붕재 추가(단위 : mm)
-
-
- ※ 지붕재는 최대 4종까지 선택할 수 있습니다.
-
-
+
{/* Roofs Array Rendering */}
{basicSetting.roofs &&
basicSetting.roofs.map((roof, index) => {
@@ -257,7 +190,7 @@ export default function InitSettingsModal(props) {
name="roofType"
onChange={(e) => handleRoofSettings(roof.roofSeq, e)}
items={roofMaterials}
- defaultSelectedKeys={roof.roofType ? roof.roofType : ''}
+ defaultSelectedKeys={roof.roofType ? [roof.roofType] : []}
selectedKeys={roof.roofType}
value={roof.roofType}
>
@@ -309,16 +242,6 @@ export default function InitSettingsModal(props) {
계단식
-
-
-
)
})}
From 377fd87716dfabd7fb477959962b4b03367b57a2 Mon Sep 17 00:00:00 2001
From: yoosangwook
Date: Wed, 11 Sep 2024 14:30:06 +0900
Subject: [PATCH 2/3] Refactor current locale change
---
src/app/[locale]/layout.js | 18 +++++++++---------
src/components/auth/Login.jsx | 25 +++++++++++++++++++++++--
src/locales/ja.json | 2 +-
src/store/localeAtom.js | 2 +-
4 files changed, 34 insertions(+), 13 deletions(-)
diff --git a/src/app/[locale]/layout.js b/src/app/[locale]/layout.js
index 28847d66..018f1ef5 100644
--- a/src/app/[locale]/layout.js
+++ b/src/app/[locale]/layout.js
@@ -2,7 +2,7 @@
import { useEffect } from 'react'
import { useRecoilState, useRecoilValue } from 'recoil'
-import { appMessageStore, globalLocaleState } from '@/store/localeAtom'
+import { appMessageStore, globalLocaleStore } from '@/store/localeAtom'
import { LocaleProvider } from './LocaleProvider'
import { useCurrentLocale } from '@/locales/client'
import ServerError from './error'
@@ -14,21 +14,21 @@ import JA from '@/locales/ja.json'
export default function LocaleLayout({ children }) {
const locale = useCurrentLocale()
- const globalLocale = useRecoilValue(globalLocaleState)
+ const globalLocale = useRecoilValue(globalLocaleStore)
const [appMessageState, setAppMessageState] = useRecoilState(appMessageStore)
useEffect(() => {
console.log(globalLocale)
console.log(sessionStorage.getItem('hi'))
console.log(Object.keys(appMessageState).length)
- if (Object.keys(appMessageState).length === 0) {
- if (globalLocale === 'ko') {
- setAppMessageState(KO)
- } else {
- setAppMessageState(JA)
- }
+ // if (Object.keys(appMessageState).length === 0) {
+ if (globalLocale === 'ko') {
+ setAppMessageState(KO)
+ } else {
+ setAppMessageState(JA)
}
- }, [])
+ // }
+ }, [globalLocale])
return (
<>
diff --git a/src/components/auth/Login.jsx b/src/components/auth/Login.jsx
index 5772ab79..a5553051 100644
--- a/src/components/auth/Login.jsx
+++ b/src/components/auth/Login.jsx
@@ -5,18 +5,33 @@ import { setSession } from '@/lib/authActions'
import { redirect } from 'next/navigation'
import { useMessage } from '@/hooks/useMessage'
-import { Button } from '@nextui-org/react'
+import { Button, Switch } from '@nextui-org/react'
import { useRecoilState } from 'recoil'
+import { globalLocaleStore } from '@/store/localeAtom'
import { modalContent, modalState } from '@/store/modalAtom'
+import { useState } from 'react'
export default function Login(props) {
const { currentLocale } = props
const { getMessage } = useMessage()
+ const [globalLocaleState, setGlbalLocaleState] = useRecoilState(globalLocaleStore)
+ const [isSelected, setIsSelected] = useState(globalLocaleState === 'ko' ? true : false)
+
+ const handleSelected = () => {
+ if (isSelected) {
+ setGlbalLocaleState('ja')
+ } else {
+ setGlbalLocaleState('ko')
+ }
+
+ setIsSelected(!isSelected)
+ }
// login process
const loginProcess = async (formData) => {
const param = {
- langCd: currentLocale,
+ // langCd: currentLocale
+ langCd: globalLocaleState,
lastEditUser: formData.get('id'),
loginId: formData.get('id'),
pwd: formData.get('password'),
@@ -174,6 +189,12 @@ export default function Login(props) {
{getMessage('login.init_password.btn')}
+
+
+
+ {isSelected ? 'Current Locale: KO' : 'Current Locale: JA'}
+
+
diff --git a/src/locales/ja.json b/src/locales/ja.json
index acc6bcbb..ecc55327 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -95,7 +95,7 @@
"site.sub_name": "태양광 발전 시스템 도면관리 사이트",
"login": "로그인",
- "login.init_password.btn": "비밀번호 초기화",
+ "login.init_password.btn": "비밀번호 초기화 ja",
"login.init_password.title": "비밀번호 초기화",
"login.init_password.sub_title": "비밀번호를 초기화할 아이디와 이메일 주소를 입력해 주세요.",
"login.init_password.complete_message": "비밀번호가 초기화 되었습니다. 초기화된 비밀번호는 아이디와 같습니다.",
diff --git a/src/store/localeAtom.js b/src/store/localeAtom.js
index 8070d6ac..0f20fa87 100644
--- a/src/store/localeAtom.js
+++ b/src/store/localeAtom.js
@@ -1,6 +1,6 @@
import { atom } from 'recoil'
-export const globalLocaleState = atom({
+export const globalLocaleStore = atom({
key: 'globalLocaleState',
default: 'ko',
})
From 597971d00f3b0dee10ec3a288e5d64be72f26a7b Mon Sep 17 00:00:00 2001
From: "hyojun.choi"
Date: Wed, 11 Sep 2024 15:03:04 +0900
Subject: [PATCH 3/3] =?UTF-8?q?step=20enum=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/common/common.js | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/src/common/common.js b/src/common/common.js
index d4c22570..aaba3f45 100644
--- a/src/common/common.js
+++ b/src/common/common.js
@@ -1,3 +1,24 @@
+export const STEP = {
+ INITIAL_CANVAS_SETTING: 'initialCanvasSetting', // 배치면 초기설정
+ ROOF_COVERING: {
+ EXTERIOR_WALL_LINE: 'exteriorWallLine', // 외벽선 그리기
+ ROOF_SHAPE_SETTINGS: 'roofShapeSettings', // 지붕형상 설정
+ ROOF_SHAPE_EDITING: 'roofShapeEditing', // 지붕형상 편집
+ HELP_LINE_DRAWING: 'helpLineDrawing', // 보조선 그리기
+ }, // 지붕덮개
+ BATCH_CANVAS: {
+ BATCH_DRAWING: 'batchDrawing', // 배치면 그리기
+ SURFACE_SHAPE_BATCH: 'surfaceShapeBatch', // 면형상 배치
+ OBJECT_BATCH: 'objectBatch', // 오브젝트 배치
+ }, // 배치면
+ MODULE_CIRCUIT_SETTING: {
+ BASIC_SETTING: 'basicSetting', // 기본설정
+ CIRCUIT_TRESTLE_SETTING: 'circuitTrestleSetting', // 회로가대설정
+ }, // 모듈회로구성
+ ESTIMATE: 'estimate', // todo 견적서
+ POWER_GENERATION_SIMULATION: 'powerGenerationSimulation', // todo 발전 시뮬레이션
+}
+
export const Mode = {
DRAW_LINE: 'drawLine', // 기준선 긋기모드`
EDIT: 'edit',