getInitialData method

dynamic getInitialData()

Implementation

getInitialData() async {
  qsParams['params'] = widget.params;
  qsParams['datasources'] = new Map<String, dynamic>();
  datasources = (widget.uiProps?['datasources'] as List?)
      ?.map<LMDataSourceConfig>(
          (ds) => LMDataSourceConfig.fromJson(convertMapStringDynamic(ds)))
      .toList();

  datasources = datasources?.reversed.toList();

  List initDataSources = widget.uiProps?['initialSources'] ?? [];
  if (initDataSources.length == 0) {
    return setState(() {
      loading = false;
    });
  }

  for (var i = 0; i < initDataSources.length; i++) {
    dynamic initDataSource = initDataSources[i]["source"];
    if (initDataSource != null) {
      var path = getPathForSource(initDataSource);
      var data = await getData(initDataSource, path: path);

      qsParams['datasources'][initDataSource] = data ?? {};
    }
  }

  widget.onParametersInitialized?.call(qsParams);
  fieldValues.replaceValuesByContextData(qsParams);
  setState(() {
    loading = false;
  });
}