kitchen-simulator 7.0.9-react-18 → 7.0.10-react-18
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.
|
@@ -303,18 +303,19 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
303
303
|
}, {
|
|
304
304
|
key: "componentDidUpdate",
|
|
305
305
|
value: function componentDidUpdate(prevProps) {
|
|
306
|
-
var _extractedState$getIn2;
|
|
306
|
+
var _extractedState$getIn2, _extractedState$getIn3;
|
|
307
307
|
var _this$props2 = this.props,
|
|
308
308
|
externalEvent = _this$props2.externalEvent,
|
|
309
309
|
extractedState = _this$props2.extractedState,
|
|
310
310
|
projectActions = _this$props2.projectActions,
|
|
311
|
-
catalog = _this$props2.catalog
|
|
312
|
-
|
|
311
|
+
catalog = _this$props2.catalog,
|
|
312
|
+
onViewer2DChange = _this$props2.onViewer2DChange;
|
|
313
|
+
onViewer2DChange === null || onViewer2DChange === void 0 || onViewer2DChange(extractedState === null || extractedState === void 0 || (_extractedState$getIn2 = extractedState.getIn) === null || _extractedState$getIn2 === void 0 ? void 0 : _extractedState$getIn2.call(extractedState, ['viewer2D']).toJS());
|
|
313
314
|
// same behavior: handle external event when it changes
|
|
314
315
|
if (prevProps.externalEvent !== externalEvent) {
|
|
315
316
|
handleExternalEvent(this.props);
|
|
316
317
|
}
|
|
317
|
-
var catalogReady = extractedState === null || extractedState === void 0 || (_extractedState$
|
|
318
|
+
var catalogReady = extractedState === null || extractedState === void 0 || (_extractedState$getIn3 = extractedState.getIn) === null || _extractedState$getIn3 === void 0 ? void 0 : _extractedState$getIn3.call(extractedState, ['catalog', 'ready']);
|
|
318
319
|
if (!catalogReady) projectActions.initCatalog(catalog);
|
|
319
320
|
}
|
|
320
321
|
}, {
|
package/es/LiteRenderer.js
CHANGED
|
@@ -25,14 +25,12 @@ import * as THREE from 'three';
|
|
|
25
25
|
import * as Models from "./models";
|
|
26
26
|
import { State } from "./models";
|
|
27
27
|
import PlannerReducer from "./reducers/reducer";
|
|
28
|
-
import AppContext from "./AppContext";
|
|
29
28
|
import Catalog from "./catalog/catalog";
|
|
30
29
|
import * as Areas from "./catalog/areas/area/planner-element";
|
|
31
30
|
import * as Lines from "./catalog/lines/wall/planner-element";
|
|
32
31
|
import * as Holes from "./catalog/holes/export";
|
|
33
32
|
import { ConsoleDebugger, Keyboard } from "./plugins/export";
|
|
34
33
|
import LiteKitchenConfigurator from "./LiteKitchenConfigurator";
|
|
35
|
-
import { toPlainObject } from "../es/utils/helper";
|
|
36
34
|
var isBrowser = typeof window !== 'undefined';
|
|
37
35
|
if (isBrowser) window.THREE = THREE;
|
|
38
36
|
|
|
@@ -157,10 +155,6 @@ function createInstanceStore() {
|
|
|
157
155
|
function createPlugins() {
|
|
158
156
|
return [Keyboard(), ConsoleDebugger()];
|
|
159
157
|
}
|
|
160
|
-
function shallowEqualViewer(a, b) {
|
|
161
|
-
if (!a || !b) return a === b;
|
|
162
|
-
return a.a === b.a && a.d === b.d && a.e === b.e && a.f === b.f && a.viewerWidth === b.viewerWidth && a.viewerHeight === b.viewerHeight && a.SVGWidth === b.SVGWidth && a.SVGHeight === b.SVGHeight;
|
|
163
|
-
}
|
|
164
158
|
export default function LiteRenderer(props) {
|
|
165
159
|
ensureSentryInit();
|
|
166
160
|
var width = props.width,
|
|
@@ -183,36 +177,6 @@ export default function LiteRenderer(props) {
|
|
|
183
177
|
// ✅ instance-scoped store (no module singleton)
|
|
184
178
|
var storeRef = useRef(null);
|
|
185
179
|
if (!storeRef.current) storeRef.current = createInstanceStore();
|
|
186
|
-
var prevRef = useRef(null);
|
|
187
|
-
useEffect(function () {
|
|
188
|
-
var _state$viewer2D2, _state$get2;
|
|
189
|
-
if (!onViewer2DChange) return;
|
|
190
|
-
if (!storeRef.current) return;
|
|
191
|
-
|
|
192
|
-
// you must have `store` in scope here (however LiteRenderer gets it)
|
|
193
|
-
var unsub = storeRef.current.subscribe(function () {
|
|
194
|
-
var _state$viewer2D, _state$get;
|
|
195
|
-
var state = storeRef.current.getState();
|
|
196
|
-
|
|
197
|
-
// viewer2D might be immutable or plain
|
|
198
|
-
var viewer2D = toPlainObject((_state$viewer2D = state.viewer2D) !== null && _state$viewer2D !== void 0 ? _state$viewer2D : (_state$get = state.get) === null || _state$get === void 0 ? void 0 : _state$get.call(state, 'viewer2D'));
|
|
199
|
-
|
|
200
|
-
// emit only when changed
|
|
201
|
-
if (!shallowEqualViewer(prevRef.current, viewer2D)) {
|
|
202
|
-
prevRef.current = viewer2D;
|
|
203
|
-
onViewer2DChange(viewer2D);
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
// emit once immediately
|
|
208
|
-
var state = storeRef.current.getState();
|
|
209
|
-
var viewer2D = toPlainObject((_state$viewer2D2 = state.viewer2D) !== null && _state$viewer2D2 !== void 0 ? _state$viewer2D2 : (_state$get2 = state.get) === null || _state$get2 === void 0 ? void 0 : _state$get2.call(state, 'viewer2D'));
|
|
210
|
-
prevRef.current = viewer2D;
|
|
211
|
-
onViewer2DChange(viewer2D);
|
|
212
|
-
return function () {
|
|
213
|
-
return unsub();
|
|
214
|
-
};
|
|
215
|
-
}, [onViewer2DChange]);
|
|
216
180
|
|
|
217
181
|
// ✅ instance-scoped catalog (no module singleton)
|
|
218
182
|
var catalogRef = useRef(null);
|
|
@@ -374,7 +338,8 @@ export default function LiteRenderer(props) {
|
|
|
374
338
|
},
|
|
375
339
|
configData: configData,
|
|
376
340
|
externalEvent: externalEvent,
|
|
377
|
-
onInternalEvent: onInternalEvent
|
|
341
|
+
onInternalEvent: onInternalEvent,
|
|
342
|
+
onViewer2DChange: onViewer2DChange
|
|
378
343
|
}, passThrough))));
|
|
379
344
|
}
|
|
380
345
|
LiteRenderer.propTypes = {
|
|
@@ -190,4 +190,8 @@ export var isWarningItem = function isWarningItem(item) {
|
|
|
190
190
|
if (item.category === 'cabinet') return !(item !== null && item !== void 0 && (_item$toJS$doorStyle = item.toJS().doorStyle) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.doorStyles) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.cds) !== null && _item$toJS$doorStyle !== void 0 && _item$toJS$doorStyle.filter(function (cd) {
|
|
191
191
|
return cd.itemID == (item === null || item === void 0 ? void 0 : item.getIn(['itemID']));
|
|
192
192
|
}).length) > 0;else return false;
|
|
193
|
-
};
|
|
193
|
+
};
|
|
194
|
+
export function shallowEqualViewer(a, b) {
|
|
195
|
+
if (!a || !b) return a === b;
|
|
196
|
+
return a.a === b.a && a.d === b.d && a.e === b.e && a.f === b.f && a.viewerWidth === b.viewerWidth && a.viewerHeight === b.viewerHeight && a.SVGWidth === b.SVGWidth && a.SVGHeight === b.SVGHeight;
|
|
197
|
+
}
|
package/es/index.js
CHANGED
|
@@ -15,6 +15,7 @@ import React from 'react';
|
|
|
15
15
|
import * as Three from 'three';
|
|
16
16
|
import LiteRenderer from "./LiteRenderer";
|
|
17
17
|
import { createRoot } from 'react-dom/client';
|
|
18
|
+
import { shallowEqualViewer } from "./components/viewer2d/utils";
|
|
18
19
|
var ROOT_KEY = '__kitchenSimulatorRoot__';
|
|
19
20
|
var API_KEY = '__kitchenSimulatorApi__';
|
|
20
21
|
function nextFrame() {
|
|
@@ -551,7 +552,9 @@ export function renderKitchenSimulator(container) {
|
|
|
551
552
|
return /*#__PURE__*/React.createElement(LiteRenderer, _extends({}, this.props, {
|
|
552
553
|
externalEvent: this.state.externalEvent,
|
|
553
554
|
onViewer2DChange: function onViewer2DChange(v) {
|
|
554
|
-
latestViewer2D
|
|
555
|
+
if (!shallowEqualViewer(v, latestViewer2D)) {
|
|
556
|
+
latestViewer2D = v;
|
|
557
|
+
}
|
|
555
558
|
}
|
|
556
559
|
}));
|
|
557
560
|
}
|