@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 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
- const LOGIN = React.useCallback(() => {
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(LOGIN, null)) : (React.createElement("div", { className: styles$9.mainframe },
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)" } },