updateProfile method

Future<UserData> updateProfile({
  1. String? firstName,
  2. String? lastName,
  3. String? avatar,
  4. Map<String, dynamic>? metadata,
})

Update current user profile

Implementation

Future<UserData> updateProfile({
  String? firstName,
  String? lastName,
  String? avatar,
  Map<String, dynamic>? metadata,
}) async {
  state = const AsyncValue.loading();

  try {
    final client = ref.read(prodobitClientProvider);
    final user = await client.user.updateProfile(
      firstName: firstName,
      lastName: lastName,
      avatar: avatar,
      metadata: metadata,
    );

    // Refresh current user profile
    ref.invalidate(currentUserProfileProvider);

    state = const AsyncValue.data(null);
    return user;
  } catch (e, stack) {
    state = AsyncValue.error(e, stack);
    rethrow;
  }
}