startHydrateAction method
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));
}
};
}