disposeDependencies method

Future<void> disposeDependencies()

Implementation

Future<void> disposeDependencies() async {
  final CrossmintClient? client = _client;
  final CrossmintWalletController? walletController = _walletController;
  final CrossmintAuthCallbackRouter? authRouter = _authRouter;
  final bool shouldDisposeDependencies = _shouldDisposeDependencies;

  _client = null;
  _walletController = null;
  _authRouter = null;
  _shouldDisposeDependencies = false;
  _otp.attachController(null);
  _session.clearDependencies();
  notifyListeners();

  if (!shouldDisposeDependencies) {
    return;
  }

  await _safeDispose('walletController', () => walletController?.dispose());
  await _safeDispose('authRouter', () => authRouter?.dispose());
  await _safeDispose('client', () => client?.dispose());
}