@trullock/page-manager 1.0.0 → 1.2.0

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 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trullock/page-manager",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Single page app manager",
5
5
  "exports": {
6
6
  ".": "./src/index.js"
package/src/index.js CHANGED
@@ -23,7 +23,7 @@ var options = {
23
23
 
24
24
  export function registerPage(opts) {
25
25
 
26
- let loadPageClass = opts.pageClass || opts.pageClassLoader;
26
+ let loadPageClass = opts.pageClass ? (() => opts.pageClass) : opts.loadPageClass;
27
27
  let namedRoutes = opts.namedRoutes || { [opts.name]: opts.route };
28
28
  let auth = opts.auth || null;
29
29
  let cacheMarkupBy = opts.cacheMarkupBy || 'path'
@@ -64,14 +64,14 @@ function emitUrlChanged(url)
64
64
  // TODO: 404 and error too?
65
65
  function initLoading()
66
66
  {
67
- var entry = router.routesByName(options.loadingPageName);
68
- var route = router.parse(entry.route);
67
+ var url = router.interpolate(options.loadingPageName, {});
68
+ var route = router.parse(url);
69
69
  return loadPage(route, {});
70
70
  }
71
71
 
72
72
  function showLoading() {
73
- var pageLookup = router.routesByName(options.loadingPageName);
74
- var route = router.parse(pageLookup.route);
73
+ var url = router.interpolate(options.loadingPageName, {});
74
+ var route = router.parse(url);
75
75
  var data = {
76
76
  route: route,
77
77
  scrollY: window.scrollY,
@@ -85,8 +85,8 @@ function showLoading() {
85
85
  }
86
86
 
87
87
  function hideLoading() {
88
- var pageLookup = router.routesByName(options.loadingPageName);
89
- var route = router.parse(pageLookup.route);
88
+ var url = router.interpolate(options.loadingPageName, {});
89
+ var route = router.parse(url);
90
90
  var page = (pageCache[route.path] || pageCache[route.pattern]).page;
91
91
  return Promise.resolve(page.hide());
92
92
  }
@@ -121,8 +121,8 @@ async function showPage(url, data, event)
121
121
  if (routeResult == null) {
122
122
  console.error(`Can't find page: '${url}'`);
123
123
 
124
- let page404 = router.routesByName(options.error404PageName);
125
- routeResult = router.parse(page404.route)
124
+ let url = router.interpolate(options.error404PageName, {});
125
+ routeResult = router.parse(url)
126
126
  }
127
127
 
128
128
  data = data || {};
@@ -298,6 +298,11 @@ export async function init(opts) {
298
298
 
299
299
  await initLoading();
300
300
 
301
+ await showLoading();
302
+ }
303
+
304
+ export async function ready()
305
+ {
301
306
  // set initial page
302
307
  emitUrlChanged(window.location.pathname + window.location.search + window.location.hash);
303
308
  showPage(window.location.pathname + window.location.search + window.location.hash, null, { action: 'load', distance: 0 }).catch(e => {
@@ -310,7 +315,6 @@ export async function init(opts) {
310
315
  handleHistoryAction({ action: e.action }, e.url, e.data, page);
311
316
  return page;
312
317
  });
313
-
314
318
  }
315
319
  });
316
320