@inertiajs/core 2.1.4 → 2.1.6

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.esm.js CHANGED
@@ -395,6 +395,7 @@ var CurrentPage = class {
395
395
  this.listeners = [];
396
396
  this.isFirstPageLoad = true;
397
397
  this.cleared = false;
398
+ this.pendingDeferredProps = null;
398
399
  }
399
400
  init({ initialPage, swapComponent, resolveComponent }) {
400
401
  this.page = initialPage;
@@ -407,6 +408,13 @@ var CurrentPage = class {
407
408
  preserveScroll = false,
408
409
  preserveState = false
409
410
  } = {}) {
411
+ if (Object.keys(page2.deferredProps || {}).length) {
412
+ this.pendingDeferredProps = {
413
+ deferredProps: page2.deferredProps,
414
+ component: page2.component,
415
+ url: page2.url
416
+ };
417
+ }
410
418
  this.componentId = {};
411
419
  const componentId = this.componentId;
412
420
  if (page2.clearHistory) {
@@ -436,7 +444,10 @@ var CurrentPage = class {
436
444
  if (!preserveScroll) {
437
445
  Scroll.reset();
438
446
  }
439
- eventHandler.fireInternalEvent("loadDeferredProps");
447
+ if (this.pendingDeferredProps && this.pendingDeferredProps.component === page2.component && this.pendingDeferredProps.url === page2.url) {
448
+ eventHandler.fireInternalEvent("loadDeferredProps", this.pendingDeferredProps.deferredProps);
449
+ }
450
+ this.pendingDeferredProps = null;
440
451
  if (!replace) {
441
452
  fireNavigateEvent(page2);
442
453
  }
@@ -736,8 +747,8 @@ var EventHandler = class {
736
747
  page.clear();
737
748
  this.fireInternalEvent("missingHistoryItem");
738
749
  }
739
- fireInternalEvent(event) {
740
- this.internalListeners.filter((listener) => listener.event === event).forEach((listener) => listener.listener());
750
+ fireInternalEvent(event, ...args) {
751
+ this.internalListeners.filter((listener) => listener.event === event).forEach((listener) => listener.listener(...args));
741
752
  }
742
753
  registerListener(type, listener) {
743
754
  document.addEventListener(type, listener);
@@ -1394,6 +1405,7 @@ var Response = class _Response {
1394
1405
  this.requestParams = requestParams;
1395
1406
  this.response = response;
1396
1407
  this.originatingPage = originatingPage;
1408
+ this.wasPrefetched = false;
1397
1409
  }
1398
1410
  static create(params, response, originatingPage) {
1399
1411
  return new _Response(params, response, originatingPage);
@@ -1408,6 +1420,7 @@ var Response = class _Response {
1408
1420
  }
1409
1421
  async process() {
1410
1422
  if (this.requestParams.all().prefetch) {
1423
+ this.wasPrefetched = true;
1411
1424
  this.requestParams.all().prefetch = false;
1412
1425
  this.requestParams.all().onPrefetched(this.response, this.requestParams.all());
1413
1426
  firePrefetchedEvent(this.response, this.requestParams.all());
@@ -1427,6 +1440,9 @@ var Response = class _Response {
1427
1440
  return this.requestParams.all().onError(scopedErrors);
1428
1441
  }
1429
1442
  router.flushByCacheTags(this.requestParams.all().invalidateCacheTags || []);
1443
+ if (!this.wasPrefetched) {
1444
+ router.flush(page.get().url);
1445
+ }
1430
1446
  fireSuccessEvent(page.get());
1431
1447
  await this.requestParams.all().onSuccess(page.get());
1432
1448
  history.preserveUrl = false;
@@ -1773,8 +1789,8 @@ var Router = class {
1773
1789
  this.visit(window.location.href, { preserveState: true, preserveScroll: true, replace: true });
1774
1790
  }
1775
1791
  });
1776
- eventHandler.on("loadDeferredProps", () => {
1777
- this.loadDeferredProps();
1792
+ eventHandler.on("loadDeferredProps", (deferredProps) => {
1793
+ this.loadDeferredProps(deferredProps);
1778
1794
  });
1779
1795
  }
1780
1796
  get(url, data = {}, options = {}) {
@@ -2049,8 +2065,7 @@ var Router = class {
2049
2065
  })
2050
2066
  };
2051
2067
  }
2052
- loadDeferredProps() {
2053
- const deferred = page.get()?.deferredProps;
2068
+ loadDeferredProps(deferred) {
2054
2069
  if (deferred) {
2055
2070
  Object.entries(deferred).forEach(([_, group]) => {
2056
2071
  this.reload({ only: group });