capture method

void capture(
  1. BuildContext context,
  2. ValueChanged<Color> onColorSelected,
  3. ValueChanged<Color>? onColorChanged
)

Implementation

void capture(
  BuildContext context,
  ValueChanged<Color> onColorSelected,
  ValueChanged<Color>? onColorChanged,
) async {
  final renderer =
      captureKey.currentContext?.findRenderObject() as RenderRepaintBoundary?;

  if (renderer == null) return;

  data.onColorSelected = onColorSelected;
  data.onColorChanged = onColorChanged;

  data.snapshot = await repaintBoundaryToImage(renderer);

  if (data.snapshot == null) return;

  data.eyeOverlayEntry = OverlayEntry(
    builder: (_) => EyeDropOverlay(
      touchable: data.touchable,
      colors: data.hoverColors,
      cursorPosition: data.cursorPosition,
    ),
  );

  if (context.mounted) {
    Overlay.of(context).insert(data.eyeOverlayEntry!);
  }
}