thm-p3-configurator 0.0.250 → 0.0.252

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
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "ActiveMarkerProvider", {
9
9
  return _ActiveMarkerContext.ActiveMarkerProvider;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "BRANCH_THEME_BY_FORMULA", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _index.BRANCH_THEME_BY_FORMULA;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "CountryController", {
13
19
  enumerable: true,
14
20
  get: function get() {
@@ -24,7 +30,7 @@ Object.defineProperty(exports, "FormulaController", {
24
30
  Object.defineProperty(exports, "InternalAppointmentPage", {
25
31
  enumerable: true,
26
32
  get: function get() {
27
- return _index.InternalAppointmentPage;
33
+ return _index2.InternalAppointmentPage;
28
34
  }
29
35
  });
30
36
  Object.defineProperty(exports, "InternalBranchSelectorModal", {
@@ -36,67 +42,67 @@ Object.defineProperty(exports, "InternalBranchSelectorModal", {
36
42
  Object.defineProperty(exports, "InternalExtraProductsPage", {
37
43
  enumerable: true,
38
44
  get: function get() {
39
- return _index.InternalExtraProductsPage;
45
+ return _index2.InternalExtraProductsPage;
40
46
  }
41
47
  });
42
48
  Object.defineProperty(exports, "InternalLicensePlatePage", {
43
49
  enumerable: true,
44
50
  get: function get() {
45
- return _index.InternalLicensePlatePage;
51
+ return _index2.InternalLicensePlatePage;
46
52
  }
47
53
  });
48
54
  Object.defineProperty(exports, "InternalLocationsPage", {
49
55
  enumerable: true,
50
56
  get: function get() {
51
- return _index.InternalLocationsPage;
57
+ return _index2.InternalLocationsPage;
52
58
  }
53
59
  });
54
60
  Object.defineProperty(exports, "InternalManualSelectionPage", {
55
61
  enumerable: true,
56
62
  get: function get() {
57
- return _index.InternalManualSelectionPage;
63
+ return _index2.InternalManualSelectionPage;
58
64
  }
59
65
  });
60
66
  Object.defineProperty(exports, "InternalNoDossierPage", {
61
67
  enumerable: true,
62
68
  get: function get() {
63
- return _index.InternalNoDossierPage;
69
+ return _index2.InternalNoDossierPage;
64
70
  }
65
71
  });
66
72
  Object.defineProperty(exports, "InternalNoProductsPage", {
67
73
  enumerable: true,
68
74
  get: function get() {
69
- return _index.InternalNoProductsPage;
75
+ return _index2.InternalNoProductsPage;
70
76
  }
71
77
  });
72
78
  Object.defineProperty(exports, "InternalOverviewPage", {
73
79
  enumerable: true,
74
80
  get: function get() {
75
- return _index.InternalOverviewPage;
81
+ return _index2.InternalOverviewPage;
76
82
  }
77
83
  });
78
84
  Object.defineProperty(exports, "InternalProductsPage", {
79
85
  enumerable: true,
80
86
  get: function get() {
81
- return _index.InternalProductsPage;
87
+ return _index2.InternalProductsPage;
82
88
  }
83
89
  });
84
90
  Object.defineProperty(exports, "InternalQuotationPage", {
85
91
  enumerable: true,
86
92
  get: function get() {
87
- return _index.InternalQuotationPage;
93
+ return _index2.InternalQuotationPage;
88
94
  }
89
95
  });
90
96
  Object.defineProperty(exports, "InternalSessionEditPage", {
91
97
  enumerable: true,
92
98
  get: function get() {
93
- return _index.InternalSessionEditPage;
99
+ return _index2.InternalSessionEditPage;
94
100
  }
95
101
  });
96
102
  Object.defineProperty(exports, "InternalSingleOrderPage", {
97
103
  enumerable: true,
98
104
  get: function get() {
99
- return _index.InternalSingleOrderPage;
105
+ return _index2.InternalSingleOrderPage;
100
106
  }
101
107
  });
102
108
  Object.defineProperty(exports, "OrderSessionController", {
@@ -111,6 +117,12 @@ Object.defineProperty(exports, "StyleWrapper", {
111
117
  return _StyleWrapper.default;
112
118
  }
113
119
  });
120
+ Object.defineProperty(exports, "ThemeProvider", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _ThemeContext.ThemeProvider;
124
+ }
125
+ });
114
126
  Object.defineProperty(exports, "orderSessionActions", {
115
127
  enumerable: true,
116
128
  get: function get() {
@@ -159,12 +171,20 @@ Object.defineProperty(exports, "useOrderSession", {
159
171
  return _OrderSessionContext.useOrderSession;
160
172
  }
161
173
  });
174
+ Object.defineProperty(exports, "useThemeContext", {
175
+ enumerable: true,
176
+ get: function get() {
177
+ return _ThemeContext.useThemeContext;
178
+ }
179
+ });
180
+ var _index = require("./src/shared/__constants__/index.js");
162
181
  var _InternalBranchSelectorModal = _interopRequireDefault(require("./src/shared/__containers__/internal/InternalBranchSelectorModal.js"));
163
182
  var _StyleWrapper = _interopRequireDefault(require("./src/shared/__containers__/StyleWrapper.js"));
164
183
  var _ActiveMarkerContext = require("./src/shared/__context__/ActiveMarkerContext.js");
165
184
  var _CountryContext = require("./src/shared/__context__/CountryContext.js");
166
185
  var _FormulaContext = require("./src/shared/__context__/FormulaContext.js");
167
186
  var _OrderSessionContext = require("./src/shared/__context__/OrderSessionContext.js");
168
- var _index = require("./src/shared/__pages__/internal/index.js");
187
+ var _ThemeContext = require("./src/shared/__context__/ThemeContext.js");
188
+ var _index2 = require("./src/shared/__pages__/internal/index.js");
169
189
  var _mainModule = _interopRequireDefault(require("./src/shared/__style__/main.module.scss"));
170
190
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -70,7 +70,7 @@ const App = () => {
70
70
  (0, _Experiments.default)();
71
71
  });
72
72
  return /*#__PURE__*/_react.default.createElement(_SentryWrapper.default, null, /*#__PURE__*/_react.default.createElement(_FormulaContext.FormulaController, {
73
- defaultFormula: _constants__.CONFIGURATOR_FORMULAS.THM
73
+ defaultFormula: _constants__.CONFIGURATOR_FORMULAS.TMG
74
74
  }, /*#__PURE__*/_react.default.createElement(_CountryContext.CountryController, {
75
75
  defaultCountry: APP_CONFIG.country
76
76
  }, /*#__PURE__*/_react.default.createElement(_OrderSessionContext.OrderSessionController, null, /*#__PURE__*/_react.default.createElement(_reactQuery.QueryClientProvider, {
@@ -11,6 +11,7 @@ require("core-js/modules/web.dom-collections.iterator.js");
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactRouter = require("react-router");
13
13
  var _constants__ = require("../__constants__");
14
+ var _ThemeContext = require("../__context__/ThemeContext");
14
15
  var _helpers__ = require("../__helpers__");
15
16
  var _useBranchTheme = require("../__hooks__/useBranchTheme");
16
17
  function _getRequireWildcardCache(e) {
@@ -40,10 +41,13 @@ function _interopRequireWildcard(e, r) {
40
41
  }
41
42
  const StyleWrapper = _ref => {
42
43
  let {
43
- children
44
+ children,
45
+ theme: themeProp
44
46
  } = _ref;
45
47
  const [height, setHeight] = _react.default.useState({});
46
- const theme = (0, _useBranchTheme.useBranchTheme)();
48
+ const themeFromHook = (0, _useBranchTheme.useBranchTheme)();
49
+ // Allow parent to override theme via prop (needed when used as npm package)
50
+ const theme = themeProp || themeFromHook;
47
51
  (0, _react.useLayoutEffect)(() => {
48
52
  window.addEventListener('resize', handleResize);
49
53
  handleResize();
@@ -67,9 +71,11 @@ const StyleWrapper = _ref => {
67
71
  });
68
72
  }
69
73
  };
70
- return /*#__PURE__*/_react.default.createElement("main", {
74
+ return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeProvider, {
75
+ theme: theme
76
+ }, /*#__PURE__*/_react.default.createElement("main", {
71
77
  className: (0, _helpers__.withStyle)("thm-configurator ".concat(APP_CONFIG.internal ? 'thm-configurator--offset' : '', " ").concat(theme === _constants__.BRANCH_THEME_BY_FORMULA.Trekhaakcentrum ? 'thc' : theme === _constants__.BRANCH_THEME_BY_FORMULA.TowMotiveGroup ? 'tmg' : '')),
72
78
  style: height
73
- }, children);
79
+ }, children));
74
80
  };
75
81
  var _default = exports.default = StyleWrapper;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.weak-map.js");
4
+ require("core-js/modules/web.dom-collections.iterator.js");
5
+ require("core-js/modules/es.weak-map.js");
6
+ require("core-js/modules/web.dom-collections.iterator.js");
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.useThemeContext = exports.ThemeProvider = void 0;
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ function _getRequireWildcardCache(e) {
13
+ if ("function" != typeof WeakMap) return null;
14
+ var r = new WeakMap(),
15
+ t = new WeakMap();
16
+ return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
17
+ return e ? t : r;
18
+ })(e);
19
+ }
20
+ function _interopRequireWildcard(e, r) {
21
+ if (!r && e && e.__esModule) return e;
22
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
23
+ default: e
24
+ };
25
+ var t = _getRequireWildcardCache(r);
26
+ if (t && t.has(e)) return t.get(e);
27
+ var n = {
28
+ __proto__: null
29
+ },
30
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
31
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
32
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
33
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
34
+ }
35
+ return n.default = e, t && t.set(e, n), n;
36
+ }
37
+ const ThemeContext = /*#__PURE__*/_react.default.createContext(null);
38
+ ThemeContext.displayName = 'ThemeContext';
39
+ const ThemeProvider = _ref => {
40
+ let {
41
+ children,
42
+ theme
43
+ } = _ref;
44
+ return /*#__PURE__*/_react.default.createElement(ThemeContext.Provider, {
45
+ value: theme
46
+ }, children);
47
+ };
48
+
49
+ /**
50
+ * @description Returns the theme from ThemeContext if available
51
+ * This allows parent applications to override the theme when using the configurator as an npm package
52
+ */
53
+ exports.ThemeProvider = ThemeProvider;
54
+ const useThemeContext = () => {
55
+ return (0, _react.useContext)(ThemeContext);
56
+ };
57
+ exports.useThemeContext = useThemeContext;
@@ -6,18 +6,34 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useBranchTheme = void 0;
7
7
  var _react = require("react");
8
8
  var _constants__ = require("../__constants__");
9
- var _LocalStorageWorker = require("../__services__/LocalStorageWorker");
10
9
  var _FormulaContext = require("../__context__/FormulaContext");
10
+ var _ThemeContext = require("../__context__/ThemeContext");
11
+ const LAST_USED_THEME_KEY = '__lastUsedTheme';
12
+
11
13
  /**
12
14
  * @description Returns the theme of the partner portal based on the currently selected branch
15
+ * - First checks if a theme was provided via ThemeContext (from StyleWrapper prop)
13
16
  * - If the branch type is TowMotive group: return tmg theme
14
17
  * - Otherwise, check the branch formula and return the corresponding theme
15
18
  * - Caches the last used theme in localstorage and updates it when the current branch theme changes (to persist themes even when the user is logged out)
16
19
  */
17
20
  const useBranchTheme = () => {
21
+ // Check if theme was provided via ThemeContext (from StyleWrapper prop)
22
+ const themeFromContext = (0, _ThemeContext.useThemeContext)();
18
23
  const formula = (0, _FormulaContext.useFormula)();
19
- const cachedTheme = _LocalStorageWorker.lsw.get(_constants__.LAST_USED_THEME_KEY);
24
+
25
+ // Try to get cached theme from localStorage
26
+ let cachedTheme = null;
27
+ try {
28
+ cachedTheme = localStorage.getItem(LAST_USED_THEME_KEY);
29
+ } catch (e) {
30
+ // localStorage not available
31
+ }
20
32
  const currentTheme = (0, _react.useMemo)(() => {
33
+ // If theme was provided via context (from parent app), use that
34
+ if (themeFromContext) {
35
+ return themeFromContext;
36
+ }
21
37
  if (!formula) {
22
38
  return cachedTheme || _constants__.BRANCH_THEME_BY_FORMULA.Trekhaakmontage;
23
39
  }
@@ -44,14 +60,18 @@ const useBranchTheme = () => {
44
60
  return cachedTheme;
45
61
  }
46
62
  }
47
- }, [cachedTheme, formula]);
63
+ }, [themeFromContext, cachedTheme, formula]);
48
64
 
49
65
  /**
50
66
  * @description Updates the last used theme value in LS with the current theme
51
67
  */
52
68
  (0, _react.useEffect)(() => {
53
69
  if (currentTheme) {
54
- _LocalStorageWorker.lsw.set(_constants__.LAST_USED_THEME_KEY, currentTheme);
70
+ try {
71
+ localStorage.setItem(LAST_USED_THEME_KEY, currentTheme);
72
+ } catch (e) {
73
+ // localStorage not available
74
+ }
55
75
  }
56
76
  }, [currentTheme]);
57
77
  return currentTheme;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thm-p3-configurator",
3
- "version": "0.0.250",
3
+ "version": "0.0.252",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": "EnoRm.",