showAttachDialog method

void showAttachDialog()

Implementation

void showAttachDialog() {
  var alert = Align(
    alignment: Alignment.bottomCenter,
    child: BackdropFilter(
      filter: ImageFilter.blur(sigmaX: 3, sigmaY: 3),
      child: Padding(
        padding: const EdgeInsets.all(8),
        child: Container(
          width: MediaQuery.of(context).size.width / 1.2,
          margin: const EdgeInsets.only(bottom: 30, left: 12, right: 12),
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(10),
            color: Colors.white,
          ),
          child: Material(
            color: Colors.transparent,
            borderRadius: BorderRadius.circular(10),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Align(
                  alignment: Alignment.topRight,
                  child: IconButton(
                    icon: const Icon(Icons.clear),
                    onPressed: () => Navigator.pop(context),
                  ),
                ),
                dialogTile(
                    text: AppStorages.languageKey!["send_attachment"]!,
                    fontWeight: FontWeight.bold,
                    fontSize: 18),
                saperator(),
                dialogTile(
                    text: AppStorages.languageKey!["gallery"]!,
                    callback: () {
                      pickMedia(false, false, false);
                    }),
                saperator(),
                dialogTile(
                    text: AppStorages.languageKey!["camera"]!,
                    callback: () {
                      pickMedia(true, false, false);
                    }),
                saperator(),
                dialogTile(
                    text: AppStorages.languageKey!["document"]!,
                    callback: () {
                      pickMedia(false, true, false);
                    }),
                saperator(),
                dialogTile(
                    text: AppStorages.languageKey!["audio"]!,
                    callback: () {
                      pickMedia(false, false, true);
                    }),
              ],
            ),
          ),
        ),
      ),
    ),
  );

  showGeneralDialog(
    barrierLabel: AppStorages.languageKey!["label"]!,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5),
    transitionDuration: const Duration(milliseconds: 400),
    context: context,
    pageBuilder: (context, anim1, anim2) {
      return alert;
    },
    transitionBuilder: (context, anim1, anim2, child) {
      return SlideTransition(
        position: Tween(begin: const Offset(0, 1), end: const Offset(0, 0))
            .animate(anim1),
        child: child,
      );
    },
  );
}