import 'dart:convert';

import 'package:feedback/feedback.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:package_info/package_info.dart';

import '../../../../api/mhsl/server/feedback/addFeedback.dart';
import '../../../../api/mhsl/server/feedback/addFeedbackParams.dart';
import '../../../../model/accountData.dart';
import '../../../../widget/infoDialog.dart';

class FeedbackSender {
  static send(BuildContext context, UserFeedback feedback) async {
    BetterFeedback.of(context).hide();
    context.loaderOverlay.show();
    AddFeedbackParams params = AddFeedbackParams(
        user: AccountData().getUserSecret(),
        feedback: feedback.text,
        screenshot: await compute((message) => base64Encode(message), feedback.screenshot),
        appVersion: int.parse((await PackageInfo.fromPlatform()).buildNumber)
    );
    AddFeedback(params).run().then((value) {
      InfoDialog.show(context, "Danke für dein Feedback!");
      context.loaderOverlay.hide();
    }).catchError((error, trace) {
      InfoDialog.show(context, error.toString());
      context.loaderOverlay.hide();
    });
  }
}