@thefreshop/tb 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +15 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +16 -6
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -62,11 +62,13 @@ const TbProvider = ({ children }) => {
|
|
|
62
62
|
});
|
|
63
63
|
// 2. 상태가 변경될 때마다 sessionStorage 저장하는 useEffect 추가
|
|
64
64
|
React.useEffect(() => {
|
|
65
|
+
// page 속성(React 컴포넌트)을 제외하고 sessionStorage에 저장
|
|
66
|
+
const tabsToSave = tabs.map(({ page, ...rest }) => rest);
|
|
65
67
|
const stateToSave = {
|
|
66
|
-
tabs,
|
|
68
|
+
tabs: tabsToSave,
|
|
67
69
|
// ... 저장할 다른 상태들 ...
|
|
68
70
|
};
|
|
69
|
-
sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(stateToSave));
|
|
71
|
+
sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(stateToSave)); // 순환 구조 오류 방지
|
|
70
72
|
}, [tabs, currentTab /* ... 다른 상태 의존성 ... */]);
|
|
71
73
|
const addTabs = (tab) => {
|
|
72
74
|
setCurrentTab(tab);
|
|
@@ -559,6 +561,12 @@ const TbFrame = ({ setting, top, bottom, nav, top_banner, hashmode = false, }) =
|
|
|
559
561
|
}, [errMsg]);
|
|
560
562
|
const route = () => {
|
|
561
563
|
let route = [];
|
|
564
|
+
if (setting?.islogin) {
|
|
565
|
+
route.push({
|
|
566
|
+
path: "/login",
|
|
567
|
+
element: setting?.loginpage ? setting.loginpage : React.createElement(LoginPage, null),
|
|
568
|
+
});
|
|
569
|
+
}
|
|
562
570
|
nav.menuSet.forEach((item) => {
|
|
563
571
|
item.menuSetting.forEach((sub) => {
|
|
564
572
|
route.push({
|
|
@@ -596,11 +604,11 @@ const TbFrame = ({ setting, top, bottom, nav, top_banner, hashmode = false, }) =
|
|
|
596
604
|
},
|
|
597
605
|
]);
|
|
598
606
|
}
|
|
599
|
-
}, [hashmode]);
|
|
607
|
+
}, [hashmode, user]);
|
|
600
608
|
return React.createElement(reactRouter.RouterProvider, { router: router });
|
|
601
609
|
};
|
|
602
610
|
const MainLayout = ({ errMsg, startpage, setting, top_banner, nav, user, top, bottom, }) => {
|
|
603
|
-
|
|
611
|
+
React.useCallback(() => {
|
|
604
612
|
if (startpage)
|
|
605
613
|
return setting?.loginpage ? setting.loginpage : React.createElement(LoginPage, null);
|
|
606
614
|
else
|
|
@@ -640,7 +648,9 @@ const MainLayout = ({ errMsg, startpage, setting, top_banner, nav, user, top, bo
|
|
|
640
648
|
fontSize: "10px",
|
|
641
649
|
} }, errMsg?.err))));
|
|
642
650
|
};
|
|
643
|
-
return (React.createElement("div", { className: styles$9.main }, errMsg ? (errMsg.isPopup ? (React.createElement(ErrWarning, null)) : null) : setting?.islogin && !user ? (React.createElement(
|
|
651
|
+
return (React.createElement("div", { className: styles$9.main }, errMsg ? (errMsg.isPopup ? (React.createElement(ErrWarning, null)) : null) : setting?.islogin && !user ? (React.createElement("div", null,
|
|
652
|
+
React.createElement(reactRouter.Outlet, null),
|
|
653
|
+
React.createElement(reactRouter.Navigate, { to: "/login", replace: true }))) : (React.createElement("div", { className: styles$9.mainframe },
|
|
644
654
|
React.createElement(Top, { setting: setting, top: top }),
|
|
645
655
|
React.createElement(TOPBANNER, null),
|
|
646
656
|
React.createElement("div", { className: styles$9.centerFrame, style: top_banner ? { height: "calc(100vh - 120px)" } : { height: "calc(100vh - 80px)" } },
|