import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:softplayer_dart_proto/src/accounts/v1/accounts_v1.pbgrpc.dart';
import 'package:softplayer_web/features/authorization/data/public_accounts_grpc_repository.dart';

class DashboardState {
  final bool authorized;

  const DashboardState({this.authorized = false});
  DashboardState copyWith({bool? authorized}) {
    return DashboardState(authorized: authorized ?? this.authorized);
  }
}

final dashboardControllerProvider =
    AsyncNotifierProvider<DashboardController, DashboardState>(
      DashboardController.new,
    );

class DashboardController extends AsyncNotifier<DashboardState> {
  static const _storage = FlutterSecureStorage();
  @override
  Future<DashboardState> build() async {
    final accessToken = await _storage.read(key: "x-access-token");
    if (accessToken == null || accessToken.isEmpty) {
      return const DashboardState(authorized: false);
    }
    return const DashboardState(authorized: true);
  }
}
