xCMD_DeleteFromList method

Future<bool> xCMD_DeleteFromList(
  1. XFDataItem itemToRemove,
  2. String title, {
  3. required dynamic cmd_Delete(
    1. String
    ),
})

Comando per rimuovere un Item dalla Lista e scatenare il change

Implementation

Future<bool> xCMD_DeleteFromList(XFDataItem itemToRemove, String title, {required Function(String) cmd_Delete}) async {
  bool x = await showDialog(
      barrierDismissible: false,
      context: context,
      builder: (builder) {
        return XAlertDialog(
          btnNO_label: "NO",
          btnYES_label: "SI",
          btnYES_OnPressed: () => Navigator.pop(context, true),
          btnNO_OnPressed: () => Navigator.pop(context, false),
          title_Text: title,
          title_Style: XStyles.xStyTextForSubLabel(textColor: Colors.yellow),
        );
      });

  if (x) {
    if (itemToRemove.id == "") {
      return false;
    } else {
      if (widget.liDetts != null) {
        setState(() => widget.liDetts!.remove(itemToRemove));
      } else {
        setState(() => list.remove(itemToRemove));
      }
      await cmd_Delete(itemToRemove.id);
      if (widget.rootItemEdited != null && itemToRemove is K) {
        widget.rootItemEdited!(itemToRemove);
      } else if (widget.itemEdited != null) {
        widget.itemEdited!(itemToRemove);
      }
      if (widget.edited != null) widget.edited!.value = true;
      return true;
    }
  } else
    return false;
}