neo.mjs 4.7.1 → 4.7.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "4.7.1",
3
+ "version": "4.7.2",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -589,7 +589,6 @@ class Gallery extends Component {
589
589
  index = me.store.indexOf(value?.[0] || 0),
590
590
  itemHeight = me.itemHeight,
591
591
  itemWidth = me.itemWidth,
592
- vdom = me.vdom,
593
592
  camera = me.vdom.cn[0].cn[0],
594
593
  cameraStyle = camera.style,
595
594
  dollyTransform = me.getCameraTransformForCell(index),
@@ -583,6 +583,7 @@ class Helix extends Component {
583
583
 
584
584
  me.promiseVdomUpdate(vdom).then(() => {
585
585
  me[itemsMounted] = true;
586
+ me.fire('itemsMounted');
586
587
 
587
588
  setTimeout(() => {
588
589
  me[lockWheel] = true;
@@ -229,7 +229,14 @@ class GalleryModel extends Model {
229
229
  items = me.items,
230
230
  oldItems = [...items],
231
231
  deltas = [],
232
- vnodeId = view.getItemVnodeId(itemId);
232
+ vnodeId = view?.getItemVnodeId(itemId);
233
+
234
+ // a select() call can happen before the view is registered
235
+ if (!view) {
236
+ // will get picked up by view.afterSetMounted()
237
+ NeoArray['add'](items, itemId);
238
+ return;
239
+ }
233
240
 
234
241
  if (me.singleSelect) {
235
242
  me.items.forEach(item => {
@@ -226,7 +226,23 @@ class HelixModel extends Model {
226
226
  isSelected = toggleSelection === false ? false : me.items.includes(itemId),
227
227
  items = me.items,
228
228
  oldItems = [...items],
229
- deltas = [];
229
+ deltas = [],
230
+ listenerId;
231
+
232
+ // a select() call can happen before the view is registered
233
+ if (!view) {
234
+ return;
235
+ }
236
+
237
+ if (!view.mounted) {
238
+ listenerId = view.on('mounted', () => {
239
+ view.un('mounted', listenerId);
240
+
241
+ setTimeout(() => {
242
+ me.select(itemId, toggleSelection);
243
+ }, 300)
244
+ })
245
+ }
230
246
 
231
247
  if (me.singleSelect) {
232
248
  items.forEach(item => {