Files
softplayer-web/lib/features/dashboard/application/dashboard_application.dart
Nikolai Rodionov 09df205fdb
All checks were successful
ci/woodpecker/push/build Pipeline was successful
Start writing the web app
Signed-off-by: Nikolai Rodionov <allanger@posteo.com>
2026-05-27 16:08:53 +02:00

31 lines
1.1 KiB
Dart

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);
}
}