0
votes

We have a custom API created in hybris and I need to use the data returned by that custom API in some Spartacus pages. I want to do this post login and want to call that api whenever the page refreshes. Also I want to maintain the data in a state so that I can use it across the pages. I know how to do it in Angular but I am confused how to do it in Spartacus. Can someone please help me

1

1 Answers

0
votes

You should treat spartacus as external lib. If you know how implement it in Angular, just do it. Most of our actions like login are exported in public API:

import { ActivatedRouterStateSnapshot, AuthActions } from '@spartacus/core';
import { RouterNavigatedAction, ROUTER_NAVIGATED } from '@ngrx/router-store';

@Injectable()
export class YourEffects {

  @Effect()
  yourActionOnLogin$: Observable<YourActions.XXX> = this.actions$.pipe(
    ofType(AuthActions.LOGIN),
    map(() => new CheckoutActions.XXX())
  );

  @Effect()
  yourActionOnNavigation$: Observable<YourActions.YYY> = this.actions$.pipe(
    ofType<RouterNavigatedAction<ActivatedRouterStateSnapshot>>(
      ROUTER_NAVIGATED
    ),
    map(() => new YourActions.YYY())
  );

}

You can create and provide own modules for part of ngrx store and occ adapters (API) as well.