import 'package:flutter/material.dart';
import 'package:flutter_dmzj/app/app_style.dart';
import 'package:flutter_dmzj/app/utils.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';

import 'package:lottie/lottie.dart';

class AppErrorWidget extends StatelessWidget {
  final Function()? onRefresh;
  final String errorMsg;
  final Error? error;
  const AppErrorWidget(
      {this.errorMsg = "", this.onRefresh, this.error, Key? key})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Center(
      child: GestureDetector(
        onTap: () {
          onRefresh?.call();
        },
        child: Padding(
          padding: AppStyle.edgeInsetsA12,
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              LottieBuilder.asset(
                'assets/lotties/error.json',
                width: 260,
                repeat: false,
              ),
              Text(
                "$errorMsg\r\n点击刷新",
                textAlign: TextAlign.center,
                style: const TextStyle(fontSize: 12, color: Colors.grey),
              ),
              Visibility(
                visible: error != null,
                child: Padding(
                  padding: AppStyle.edgeInsetsT12,
                  child: OutlinedButton(
                    style: OutlinedButton.styleFrom(
                      textStyle: Get.textTheme.bodySmall,
                      tapTargetSize: MaterialTapTargetSize.shrinkWrap,
                    ),
                    onPressed: () {
                      Utils.copyText(
                          "$errorMsg\n${error?.stackTrace?.toString()}");
                      SmartDialog.showToast("已复制详细信息");
                    },
                    child: const Text("复制详细信息"),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
