areViewsPresentInWeb static method

JSArray<JSAny?> areViewsPresentInWeb(
  1. JSArray<JSAny?> searchElements,
  2. double pixRatio,
  3. int screenWidth,
  4. int screenHeight,
)

Implementation

static JSArray areViewsPresentInWeb(JSArray searchElements, double pixRatio,
    int screenWidth, int screenHeight) {
  try {
    screenHeight = (MediaQuery.of(ctx).size.height * pixRatio).round();
    screenWidth = (MediaQuery.of(ctx).size.width * pixRatio).round();
    List<dynamic> presentElements = [];
    List<dynamic> elements = searchElements.toDart;

    for (int i = 0; i < elements.length; i++) {
      var searchElement = elements[i] as ElementSearchObject;
      var key = searchElement.clientElementId;
      if (visibilityMap[key] == 100.0) {
        BuildContext? element = findViewByKey(key, ctx);
        if (element != null) {
          RenderBox box = element.findRenderObject() as RenderBox;
          Offset position = box.localToGlobal(Offset.zero);
          if (isWithinBoundsOfWeb(
              element, position, screenWidth, screenHeight)) {
            presentElements.add(searchElement);
          }
        }
      }
    }

    return presentElements.map((element) => element as JSAny).toList().toJS;
  } catch (e) {
    debugPrint("Error in areViewsPresent: $e");
  }
  return [].map((element) => element as JSAny).toList().toJS;
}