evaluateResult method
_EvaluatorResult<T>
evaluateResult(
- RecoilOptions<T> recoilOptions
)
Implementation
_EvaluatorResult<T> evaluateResult(RecoilOptions<T> recoilOptions) {
final dependencies = List<String>.empty(growable: true);
late Function(RecoilOptions) getRecoilState;
getRecoilState = (options) {
final result = options is Selector<T>
? options.getValue(getRecoilState)
: getModelValue(options as Atom<T>);
if (options is Atom) dependencies.add(options.key);
return (recoilOptions is Selector && options is Atom)
? (result as ValueNotifier<T>).value
: result;
};
final currentValue = getRecoilState(recoilOptions);
return _EvaluatorResult(currentValue, dependencies);
}