loadUserData method

void loadUserData(
  1. String usersDataJson
)

Implementation

void loadUserData(String usersDataJson) {
  final sanitized = usersDataJson
      .split('\n')
      .where((line) => !line.trimLeft().startsWith('//'))
      .join('\n')
      .trim();
  if (sanitized.isEmpty) return;

  final decoded = json.decode(sanitized);
  if (decoded is Map<String, dynamic>) {
    if (decoded.containsKey('id')) {
      registerUser(UserData.fromJson(decoded));
    } else {
      final defaultUser =
          activeUser ?? UserData(id: 'defaultUser', name: 'Default User');
      for (var entry in decoded.entries) {
        defaultUser.setProperty(entry.key, entry.value);
      }
      registerUser(defaultUser);
    }
  } else if (decoded is List) {
    importUsers(decoded);
  }
}