import 'package:comwell_key_app/authentication/authentication_repository.dart';
import 'package:comwell_key_app/base/base_cubit.dart';
import 'package:comwell_key_app/presentation/screens/webview/bloc/webview_state.dart';
import 'package:webview_flutter/webview_flutter.dart';

class WebviewCubit extends BaseCubit<WebviewState> {
  late WebViewController controller;
  final String url;
  final String title;
  final AuthenticationRepository _authRepository;

  WebviewCubit(this._authRepository, {required this.url, this.title = ""}) : super(const WebviewState()) {
    init();
  }

  void init() {
    controller = WebViewController()
      ..setJavaScriptMode(JavaScriptMode.unrestricted)
      ..setNavigationDelegate(
        NavigationDelegate(
          onPageStarted: (String url) {
            safeEmit(state.copyWith(isLoading: true));
          },
          onPageFinished: (String url) {
            safeEmit(state.copyWith(isLoading: false));
          },
          onWebResourceError: (WebResourceError error) {
            print('WebView error: ${error.description}');
          },
        ),
      );

    // Load with headers
    loadPage(url, "");
  }

  void loadPage(String url, String authToken) {
    controller.loadRequest(
      Uri.parse(url),
      headers: {},
    );
  }
}