diff --git a/src/components/Main.jsx b/src/components/Main.jsx
index 76676cd1..11046eed 100644
--- a/src/components/Main.jsx
+++ b/src/components/Main.jsx
@@ -2,39 +2,32 @@
import React, { useEffect, useState } from 'react'
import { useRouter } from 'next/navigation'
-import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'
-import { modalContent, modalState, modalProps } from '@/store/modalAtom'
+import { useRecoilState, useRecoilValue } from 'recoil'
import { sessionStore } from '@/store/commonAtom'
import { useAxios } from '@/hooks/useAxios'
import { globalLocaleStore } from '@/store/localeAtom'
import MainContents from './main/MainContents'
import { useMessage } from '@/hooks/useMessage'
import { stuffSearchState } from '@/store/stuffAtom'
-import { useForm } from 'react-hook-form'
import '@/styles/contents.scss'
import ChangePasswordPop from './main/ChangePasswordPop'
import { searchState } from '@/store/boardAtom'
export default function MainPage() {
- const [sessionState, setSessionState] = useRecoilState(sessionStore)
+ const sessionState = useRecoilValue(sessionStore)
const globalLocaleState = useRecoilValue(globalLocaleStore)
- const { get } = useAxios(globalLocaleState)
+ const { promiseGet } = useAxios(globalLocaleState)
const router = useRouter()
const { getMessage } = useMessage()
const [searchTxt, setSearchTxt] = useState('')
const [searchRadioType, setSearchRadioType] = useState('object')
- //컨텐츠 관련
+
const [saleStoreId, setSaleStoreId] = useState('')
const [saleStoreName, setSaleStoreName] = useState('')
- const [objectList, setObjectList] = useState([])
- const [businessCharger, setBusinessCharger] = useState('')
- const [businessChargerMail, setBusinessChargerMail] = useState('')
- const [businessChargerTel, setBusinessChargerTel] = useState('')
-
const [stuffSearch, setStuffSearch] = useRecoilState(stuffSearchState)
const [searchForm, setSearchForm] = useRecoilState(searchState)
@@ -47,17 +40,15 @@ export default function MainPage() {
const fetchObjectList = async () => {
try {
- // const apiUrl = `/api/main-page/object/X167/list`
const apiUrl = `/api/main-page/object/${sessionState?.storeId}/list`
- const res = await get({ url: apiUrl })
- if (res) {
- setSaleStoreId(res.saleStoreId)
- setSaleStoreName(res.saleStoreName)
- setObjectList(res.objectList)
- setBusinessCharger(res.businessCharger)
- setBusinessChargerMail(res.businessChargerMail)
- setBusinessChargerTel(res.businessChargerTel)
- }
+ await promiseGet({
+ url: apiUrl,
+ }).then((res) => {
+ if (res.status === 200) {
+ setSaleStoreId(res.data.saleStoreId)
+ setSaleStoreName(res.data.saleStoreName)
+ }
+ })
} catch (error) {
console.error('MAIN API fetching error:', error)
}
@@ -143,12 +134,7 @@ export default function MainPage() {
-
+
>
)) || (
diff --git a/src/components/main/ChangePasswordPop.jsx b/src/components/main/ChangePasswordPop.jsx
index e9355d24..b5a3f8da 100644
--- a/src/components/main/ChangePasswordPop.jsx
+++ b/src/components/main/ChangePasswordPop.jsx
@@ -70,8 +70,9 @@ export default function ChangePasswordPop() {
chgType: 'I',
chgPwd: _password1,
}
+
await patch({ url: '/api/login/v1.0/user/change-password', data: param }).then((res) => {
- if (res) {
+ if (res.result.code === 200) {
if (res.result.resultCode === 'S') {
alert(getMessage('main.popup.login.success'))
setSessionState({ ...sessionState, pwdInitYn: 'Y' })
diff --git a/src/components/main/MainContents.jsx b/src/components/main/MainContents.jsx
index 6dcca943..d2e38853 100644
--- a/src/components/main/MainContents.jsx
+++ b/src/components/main/MainContents.jsx
@@ -8,11 +8,18 @@ import { useRecoilValue } from 'recoil'
import { useRouter } from 'next/navigation'
import { globalLocaleStore } from '@/store/localeAtom'
import { queryStringFormatter } from '@/util/common-utils'
-export default function MainContents({ objectList, businessCharger, businessChargerMail, businessChargerTel }) {
+import { sessionStore } from '@/store/commonAtom'
+
+export default function MainContents() {
const { getMessage } = useMessage()
const router = useRouter()
const globalLocaleState = useRecoilValue(globalLocaleStore)
- const { get } = useAxios(globalLocaleState)
+ const { promiseGet, get } = useAxios(globalLocaleState)
+
+ const sessionState = useRecoilValue(sessionStore)
+
+ //최근 물건
+ const [objectList, setObjectList] = useState([])
//공지사항
const [recentNoticeList, setRecentNoticeList] = useState([])
@@ -20,10 +27,37 @@ export default function MainContents({ objectList, businessCharger, businessChar
//FAQ
const [recentFaqList, setRecentFaqList] = useState([])
+ //Sales Contact info
+ const [businessCharger, setBusinessCharger] = useState(null)
+ const [businessChargerMail, setBusinessChargerMail] = useState(null)
+
useEffect(() => {
+ fetchObjectList()
fetchNoticeList()
fetchFaqList()
- }, [])
+ }, [sessionState])
+
+ //최근 갱신 물건목록 / Sales Contact info 정보
+ const fetchObjectList = async () => {
+ try {
+ const apiUrl = `/api/main-page/object/${sessionState?.storeId}/list`
+ await promiseGet({
+ url: apiUrl,
+ }).then((res) => {
+ if (res.status === 200) {
+ setObjectList(res.data.objectList)
+ setBusinessCharger(res.data.businessCharger)
+ setBusinessChargerMail(res.data.businessChargerMail)
+ } else {
+ setObjectList([])
+ setBusinessCharger(null)
+ setBusinessChargerMail(null)
+ }
+ })
+ } catch (error) {
+ console.error('MAIN API fetching error:', error)
+ }
+ }
//공지사항 호출
const fetchNoticeList = async () => {
@@ -35,13 +69,13 @@ export default function MainContents({ objectList, businessCharger, businessChar
endRow: 1,
}
const noticeApiUrl = `api/board/list?${queryStringFormatter(param)}`
- const res = await get({ url: noticeApiUrl })
- //console.log('공지res::', res)
- if (res) {
- if (res.data.length > 0) {
- setRecentNoticeList(res.data)
+ await promiseGet({ url: noticeApiUrl }).then((res) => {
+ if (res.status === 200) {
+ setRecentNoticeList(res.data.data)
+ } else {
+ setRecentNoticeList([])
}
- }
+ })
} catch (error) {
console.error('NOTICE fetching error:', error)
}
@@ -57,13 +91,15 @@ export default function MainContents({ objectList, businessCharger, businessChar
endRow: 3,
}
const faqApiUrl = `api/board/list?${queryStringFormatter(param)}`
- const res = await get({ url: faqApiUrl })
- //console.log('FAQres::', res)
- if (res) {
- if (res.data.length > 0) {
- setRecentFaqList(res.data)
+ await promiseGet({
+ url: faqApiUrl,
+ }).then((res) => {
+ if (res.status === 200) {
+ setRecentFaqList(res.data.data)
+ } else {
+ setRecentFaqList([])
}
- }
+ })
} catch (error) {
console.error('FAQ fetching error:', error)
}
@@ -74,38 +110,28 @@ export default function MainContents({ objectList, businessCharger, businessChar
- {objectList?.length > 0 ? (
- <>
- {objectList.map((row) => {
- return (
- - {
- if (row.objectNo.substring(0, 1) === 'R') {
- router.push(`/management/stuff/detail?objectNo=${row.objectNo.toString()}`)
- } else {
- router.push(`/management/stuff/tempdetail?objectNo=${row.objectNo.toString()}`)
- }
- }}
- >
-
- {dayjs(row.lastEditDatetime).format('YYYY.MM.DD HH:mm:ss')}
- {row.objectNo}
- {row.objectName}
- {row.saleStoreName}
-
-
- )
- })}
- >
- ) : (
- <>
- -
-
최근 갱신 물건이 없습니다
+ {objectList.map((row) => {
+ return (
+ - {
+ if (row.objectNo.substring(0, 1) === 'R') {
+ router.push(`/management/stuff/detail?objectNo=${row.objectNo.toString()}`)
+ } else {
+ router.push(`/management/stuff/tempdetail?objectNo=${row.objectNo.toString()}`)
+ }
+ }}
+ >
+
+ {dayjs(row.lastEditDatetime).format('YYYY.MM.DD HH:mm:ss')}
+ {row.objectNo}
+ {row.objectName}
+ {row.saleStoreName}
+
- >
- )}
+ )
+ })}
@@ -156,13 +182,17 @@ export default function MainContents({ objectList, businessCharger, businessChar
- {businessCharger}
+ {(businessCharger && {businessCharger}
) || (
+ {getMessage('main.content.noBusiness')}
+ )}
- {businessChargerMail}
+ {(businessChargerMail && {businessChargerMail}
) || (
+ {getMessage('main.content.noBusiness')}
+ )}
diff --git a/src/locales/ja.json b/src/locales/ja.json
index b6f41c05..c4c09341 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -588,6 +588,7 @@
"main.content.notice": "お知らせ",
"main.content.download1": "操作マニュアル",
"main.content.download2": "屋根の説明書",
+ "main.content.noBusiness": "Hanwha Japanにお問い合わせください",
"main.popup.login.popupTitle": "パスワード変更",
"main.popup.login.newPassword1": "新しいパスワードを入力",
"main.popup.login.newPassword2": "新規パスワード再入力",
diff --git a/src/locales/ko.json b/src/locales/ko.json
index 525ae91c..f5394e2e 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -472,7 +472,7 @@
"stuff.addressPopup.btn1": "닫기",
"stuff.addressPopup.btn2": "주소적용",
"stuff.planReqPopup.title": "설계의뢰 불러오기",
- "stuff.temp.subTitle" : "물건정보",
+ "stuff.temp.subTitle": "물건정보",
"stuff.detail.required": "필수 입력항목",
"stuff.detail.planReqNo": "설계의뢰No.",
"stuff.detail.dispCompanyName": "담당자",
@@ -593,12 +593,13 @@
"main.content.notice": "공지사항",
"main.content.download1": "조작메뉴얼",
"main.content.download2": "지붕설명서",
+ "main.content.noBusiness": "Hanwha Japan에 문의하세요",
"main.popup.login.popupTitle": "비밀번호변경",
"main.popup.login.newPassword1": "새 비밀번호 입력",
"main.popup.login.newPassword2": "새 비밀번호 재입력",
"main.popup.login.placeholder": "반각 10자 이내",
- "main.popup.login.guide1": "초기화된 비밀번호로 로그인한 경우 비밀번호를 변경하지 않으면 사이트 이용이 가능합니다.",
- "main.popup.login.guide2": "비밀번호를 변경하지 않으려면 로그인 화면으로 이동합니다.",
+ "main.popup.login.guide1": "초기화된 비밀번호로 로그인한 경우, 비밀번호를 변경해야 사이트 이용이 가능합니다.",
+ "main.popup.login.guide2": "비밀번호를 변경하지 않을 경우, 로그인 화면으로 이동합니다.",
"main.popup.login.btn1": "변경",
"main.popup.login.btn2": "변경안함",
"main.popup.login.validate1": "입력한 패스워드가 다릅니다.",