bind_partner_controller.dart 1.75 KB
import 'package:doublefeel_flutter/app/routes/app_pages.dart';
import 'package:doublefeel_flutter/core/services/user_state_service.dart';
import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart';
import 'package:flutter/widgets.dart';
import 'package:get/get.dart';

class BindPartnerController extends GetxController {
  final TextEditingController partnerIdController = TextEditingController();

  final RxString partnerIdInput = ''.obs;

  final RxBool isSubmitting = false.obs;

  final RxString myInviteCode = 'AC1192'.obs;

  @override
  void onInit() {
    super.onInit();
    partnerIdController.addListener(() {
      partnerIdInput.value = partnerIdController.text.trim();
    });
  }

  @override
  void onClose() {
    partnerIdController.dispose();
    super.onClose();
  }

  bool get canSubmit => partnerIdInput.value.isNotEmpty;

  void onShareMyCode() {}

  Future<void> onSubmitPartnerId() async {
    if (!canSubmit || isSubmitting.value) return;
    isSubmitting.value = true;
    try {
      final userStateService = Get.find<UserStateService>();
      final partnerId = partnerIdInput.value;
      if (!userStateService.isVip) {
        Get.offAllNamed(AppRoutes.userOnboarding, arguments: {
          'type': "MembershipOfferPage",
          'needBindSuccessGuide': true
        });
      } else {
        Get.offAllNamed(AppRoutes.home);
      }
    } catch (e) {
    } finally {
      isSubmitting.value = false;
    }
  }

  void onSkip() {
    final userStateService = Get.find<UserStateService>();
    if (!userStateService.isVip) {
      Get.offAllNamed(AppRoutes.userOnboarding, arguments: {
        'type': "MembershipOfferPage",
        'needBindSuccessGuide': false
      });
    } else {
      Get.offAllNamed(AppRoutes.home);
    }
  }
}