createStore method

AFibStoreStackEntry createStore({
  1. required AFConceptualStore conceptual,
  2. required bool enableUIRouting,
  3. AFPublicState? publicState,
})

Implementation

AFibStoreStackEntry createStore({
  required AFConceptualStore conceptual,
  required bool enableUIRouting,
  AFPublicState? publicState,
}) {


  final middleware = <Middleware<AFState>>[];
  if(enableUIRouting) {
    middleware.addAll(createRouteMiddleware());
  }
  middleware.add(AFQueryMiddleware());

  var initialState = AFState.initialState(conceptual);
  if(publicState != null) {
    initialState = initialState.copyWith(public: publicState);
  }

  final store = AFStore(
    afReducer,
    initialState: initialState,
    middleware: middleware
  );

  final dispatcher = AFStoreDispatcher(store);
  return AFibStoreStackEntry(store: store, dispatcher: dispatcher);
}