@veloceapps/sdk 8.0.0-85 → 8.0.0-87

Sign up to get free protection for your applications and to get access to all the features.
@@ -1724,24 +1724,25 @@ class RootGuard {
1724
1724
  this.router = router;
1725
1725
  this.routerService = routerService;
1726
1726
  this.initialized = false;
1727
- this.navToRestore = null;
1728
1727
  }
1729
1728
  canActivate(route) {
1730
1729
  // We always need to initialize root component first, and only then start checking guards/resolvers
1731
1730
  if (!this.initialized) {
1732
1731
  this.initialized = true;
1733
- this.navToRestore = this.router.getCurrentNavigation();
1732
+ const navToRestore = this.router.getCurrentNavigation();
1734
1733
  const rootUrl = this.routerService.getFlowRootPath(route);
1735
- this.router.navigate([rootUrl], {
1736
- replaceUrl: !this.navToRestore?.previousNavigation,
1737
- queryParams: route.queryParams,
1738
- });
1739
- }
1740
- else if (this.navToRestore) {
1741
- const nav = this.navToRestore;
1742
- setTimeout(() => {
1743
- this.router.navigateByUrl(nav.extractedUrl, nav.extras);
1744
- this.navToRestore = null;
1734
+ this.router
1735
+ .navigate([rootUrl], {
1736
+ replaceUrl: !navToRestore?.previousNavigation,
1737
+ skipLocationChange: true,
1738
+ })
1739
+ .then(success => {
1740
+ if (!success || !navToRestore) {
1741
+ return;
1742
+ }
1743
+ setTimeout(() => {
1744
+ this.router.navigateByUrl(navToRestore.extractedUrl, navToRestore.extras);
1745
+ });
1745
1746
  });
1746
1747
  }
1747
1748
  return true;
@@ -2802,71 +2803,78 @@ const rootRoute = {
2802
2803
  id: VELOCE_FLOW_ROOT_ROUTE,
2803
2804
  path: '',
2804
2805
  component: FlowComponent,
2805
- canActivate: [initFlow],
2806
- runGuardsAndResolvers: 'always',
2806
+ canActivate: [RootGuard],
2807
+ canDeactivate: [RootGuard],
2807
2808
  children: [
2808
2809
  {
2809
- path: 'flows',
2810
- runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2811
- resolve: { flow: FlowResolver },
2812
- canActivate: [ContextGuard],
2813
- children: [],
2814
- },
2815
- {
2816
- path: 'product',
2817
- component: ProductComponent,
2818
- runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2819
- resolve: { quote: QuoteResolver },
2820
- canActivate: [ContextGuard],
2821
- canDeactivate: [ProductUnloadGuard],
2822
- data: { showHeader: true },
2823
- },
2824
- {
2825
- path: 'cart',
2826
- component: ShoppingCartComponent,
2827
- runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2828
- resolve: { quote: QuoteResolver },
2829
- canActivate: [ContextGuard],
2830
- data: { showHeader: true },
2831
- },
2832
- {
2833
- path: 'catalog',
2834
- component: CatalogComponent,
2835
- runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2836
- resolve: { quote: QuoteResolver },
2837
- canActivate: [ContextGuard],
2838
- data: { showHeader: true },
2839
- },
2840
- {
2841
- path: 'assets',
2842
- component: AssetsComponent,
2843
- runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2844
- resolve: { quote: QuoteResolver },
2845
- canActivate: [ContextGuard],
2846
- data: { showHeader: true },
2847
- },
2848
- {
2849
- path: 'empty',
2850
- component: EmptyAccountComponent,
2851
- runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2852
- resolve: { quote: QuoteResolver },
2853
- canActivate: [ContextGuard],
2854
- data: { showHeader: true },
2855
- },
2856
- {
2857
- path: 'remote',
2858
- component: RemoteComponent,
2859
- runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2860
- resolve: { quote: QuoteResolver },
2861
- canActivate: [ContextGuard],
2862
- },
2863
- {
2864
- path: 'debug',
2865
- loadChildren: () => DebugModule,
2866
- },
2867
- {
2868
- path: '404',
2869
- loadChildren: () => RecordNotFoundModule,
2810
+ path: '',
2811
+ canActivate: [initFlow],
2812
+ runGuardsAndResolvers: 'always',
2813
+ children: [
2814
+ {
2815
+ path: 'flows',
2816
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2817
+ resolve: { flow: FlowResolver },
2818
+ canActivate: [ContextGuard],
2819
+ children: [],
2820
+ },
2821
+ {
2822
+ path: 'product',
2823
+ component: ProductComponent,
2824
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2825
+ resolve: { quote: QuoteResolver },
2826
+ canActivate: [ContextGuard],
2827
+ canDeactivate: [ProductUnloadGuard],
2828
+ data: { showHeader: true },
2829
+ },
2830
+ {
2831
+ path: 'cart',
2832
+ component: ShoppingCartComponent,
2833
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2834
+ resolve: { quote: QuoteResolver },
2835
+ canActivate: [ContextGuard],
2836
+ data: { showHeader: true },
2837
+ },
2838
+ {
2839
+ path: 'catalog',
2840
+ component: CatalogComponent,
2841
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2842
+ resolve: { quote: QuoteResolver },
2843
+ canActivate: [ContextGuard],
2844
+ data: { showHeader: true },
2845
+ },
2846
+ {
2847
+ path: 'assets',
2848
+ component: AssetsComponent,
2849
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2850
+ resolve: { quote: QuoteResolver },
2851
+ canActivate: [ContextGuard],
2852
+ data: { showHeader: true },
2853
+ },
2854
+ {
2855
+ path: 'empty',
2856
+ component: EmptyAccountComponent,
2857
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2858
+ resolve: { quote: QuoteResolver },
2859
+ canActivate: [ContextGuard],
2860
+ data: { showHeader: true },
2861
+ },
2862
+ {
2863
+ path: 'remote',
2864
+ component: RemoteComponent,
2865
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2866
+ resolve: { quote: QuoteResolver },
2867
+ canActivate: [ContextGuard],
2868
+ },
2869
+ {
2870
+ path: 'debug',
2871
+ loadChildren: () => DebugModule,
2872
+ },
2873
+ {
2874
+ path: '404',
2875
+ loadChildren: () => RecordNotFoundModule,
2876
+ },
2877
+ ],
2870
2878
  },
2871
2879
  ],
2872
2880
  };