showHelp function

dynamic showHelp({
  1. required BuildContext context,
  2. required List<HelpItem> items,
})

Implementation

showHelp({required BuildContext context, required List<HelpItem> items}) {
  Size size = MediaQuery.of(context).size;
  List<Widget> children = [
    Positioned(
      child: CircleAvatar(
        child: Icon(Icons.close),
        backgroundColor: Colors.redAccent,
      ).onTap(() {
        print('on tap');
        Navigator.of(context).pop();
      }),
      width: 30,
      height: 30,
      left: 20,
      top: 40,
    ),
  ];
  for (HelpItem e in items) {
    HelpItem item = HelpItem(
      color: e.color,
      text: e.text,
      arrowPoint:
          Offset(e.arrowPoint!.dx * size.width, e.arrowPoint!.dy * size.height),
      endPoint:
          Offset(e.endPoint!.dx * size.width, e.endPoint!.dy * size.height),
    );
    children.insert(
      0,
      Positioned(
        child: DrawView(
          size: size,
          onPaint: (canvas, size) {
            canvas.drawHelpItem(item);
          },
        ),
      ),
    );
  }

  showGeneralDialog(
    context: context,
    pageBuilder: (c, ani1, ani2) {
      return Dialog(
        insetPadding: EdgeInsets.zero,
        backgroundColor: Colors.transparent,
        child: SizedBox(
          width: size.width,
          height: size.height,
          child: Stack(
            children: children,
          ),
        ),
      ).sized(size: size);
    },
  );
}