@trullock/page-manager 0.6.9 → 0.6.10

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.js +14 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trullock/page-manager",
3
- "version": "0.6.9",
3
+ "version": "0.6.10",
4
4
  "description": "Single page app manager",
5
5
  "exports": {
6
6
  ".": "./src/index.js",
package/src/index.js CHANGED
@@ -114,7 +114,9 @@ function loadPage(route, data) {
114
114
  }
115
115
 
116
116
  var page = pageCache[route.path].page;
117
- return page.boot(data).then(() => page);
117
+
118
+ let booted = new Promise(resolve => resolve(page.boot(data)));
119
+ return booted.then(() => page);
118
120
  });
119
121
  }
120
122
 
@@ -159,6 +161,7 @@ function showPage(url, data, event) {
159
161
  if (event.action == 'load')
160
162
  {
161
163
  return getPage
164
+ .then(page => doShow(page, data))
162
165
  .then(page => {
163
166
  // clean initial load
164
167
  if(stackPointer == -1)
@@ -173,8 +176,7 @@ function showPage(url, data, event) {
173
176
  stack[stackPointer].data = data;
174
177
  }
175
178
  return page;
176
- })
177
- .then(page => doShow(page, data));
179
+ });
178
180
  }
179
181
 
180
182
  let currentState = stack[stackPointer];
@@ -321,8 +323,16 @@ export async function init(opts) {
321
323
  // set initial page
322
324
  showPage(window.location.pathname + window.location.search + window.location.hash, null, { action: 'load', distance: 0 }).catch(e => {
323
325
  console.error(e);
326
+
324
327
  if (e instanceof PageShowError)
325
- return showPage(e.url, e.data, { action: stackPointer == -1 ? 'load' : e.action || 'show' });
328
+ {
329
+ return showPage(e.url, e.data, { action: stackPointer == -1 ? 'load' : e.action || 'show' }).then(page => {
330
+ if(e.action == 'replace')
331
+ handleHistoryAction({ action: e.action }, e.url, e.data, page);
332
+ return page;
333
+ });
334
+
335
+ }
326
336
  });
327
337
 
328
338
  function handlePopstate(context, direction, distance) {