@eintrek/erp-shell 0.1.44 → 0.1.45

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/index.js CHANGED
@@ -1669,27 +1669,40 @@ function writeThemeCookie(value) {
1669
1669
  /**
1670
1670
  * Bridges next-themes (per-origin localStorage) with a cookie scoped to the
1671
1671
  * parent domain, so the light/dark/system choice is shared across the
1672
- * accounting / HR / platform subdomains. On load it adopts the shared cookie;
1673
- * on every later change it writes the cookie back.
1672
+ * accounting / HR / platform subdomains.
1673
+ *
1674
+ * Local storage wins when it already has a value (H57): adopting the shared
1675
+ * cookie first used to overwrite an explicit choice — including one set via
1676
+ * DevTools — and write `theme=light` back on every load whenever the cookie
1677
+ * still said light. Push the local value into the cookie instead so sibling
1678
+ * apps catch up.
1674
1679
  */
1675
1680
  function ThemeCookieSync() {
1676
1681
  const { theme, setTheme } = nextThemes.useTheme();
1677
1682
  const skipFirstWrite = React__namespace.useRef(true);
1678
1683
  React__namespace.useEffect(() => {
1684
+ const local = typeof window !== "undefined"
1685
+ ? window.localStorage.getItem("theme")
1686
+ : null;
1679
1687
  const cookie = readThemeCookie();
1680
- if (cookie) {
1688
+ if (local) {
1689
+ if (local !== theme)
1690
+ setTheme(local);
1691
+ writeThemeCookie(local);
1692
+ }
1693
+ else if (cookie) {
1681
1694
  if (cookie !== theme)
1682
1695
  setTheme(cookie);
1683
1696
  }
1684
1697
  else if (theme) {
1685
- writeThemeCookie(theme); // seed the shared cookie the first time
1698
+ writeThemeCookie(theme);
1686
1699
  }
1687
1700
  // Run once on mount — `theme` is intentionally not a dependency here.
1688
1701
  // eslint-disable-next-line react-hooks/exhaustive-deps
1689
1702
  }, []);
1690
1703
  React__namespace.useEffect(() => {
1691
1704
  // Skip the initial render; only persist genuine changes (incl. the
1692
- // setTheme() triggered by adopting the cookie above — harmless re-write).
1705
+ // setTheme() triggered by adopting storage above — harmless re-write).
1693
1706
  if (skipFirstWrite.current) {
1694
1707
  skipFirstWrite.current = false;
1695
1708
  return;