startHydrateAction method

ThunkAction<T> startHydrateAction({
  1. bool refresh = false,
  2. bool dry = false,
})

Returns a hydrated state

Implementation

ThunkAction<T> startHydrateAction({bool refresh = false, bool dry = false}) {
  return (Store<T> store) async {

    Box<S> fortBox = await Fort().storeBox<S>(fortKey);

    S? object = fortBox.get(objectID);

    if(object == null){
      //Retreive object and store it
      object = await retreiveObject(objectID);
      await fortBox.put(objectID, object!);
    }

    T? newState = await getStoredHydrate(keepKey);
    if((newState == null && !dry) || refresh){
      //No hydrated state stored or refresh called, hydrate
      newState = await hydrateState(object);
      await storeState(newState);
      hydrator.complete(false);
    }
    else{
      hydrator.complete(true);
    }



    if(newState != null){
      dispatch(SetState(newState));
    }

  };
}