fetchApps method

Future<List<SmartLinksAppItem>> fetchApps()

Implementation

Future<List<SmartLinksAppItem>> fetchApps() async {
  if (!AppsConstants.isApiValid() && !SmartLinksCore.isInitialized) {
    throw StateError('API key is required to load apps.');
  }

  SmartLinksCore.requireInitialized();
  if (!SmartLinksNativeApi.isEnabled) {
    throw UnsupportedError(
      'Apps require the SmartLinks native bridge (iOS/Android).',
    );
  }

  final payload = await SmartLinksNativeApi.fetchApps();
  final data = payload?['data'];
  if (data is! List) return [];
  return data
      .whereType<Map<String, dynamic>>()
      .map(SmartLinksAppItem.fromJson)
      .toList();
}