Start writing the web app
All checks were successful
ci/woodpecker/push/build Pipeline was successful

Signed-off-by: Nikolai Rodionov <allanger@posteo.com>
This commit was merged in pull request #5.
This commit is contained in:
2026-05-19 13:37:41 +02:00
parent 0c5b657a2f
commit 09df205fdb
76 changed files with 1961 additions and 117 deletions

View File

@@ -0,0 +1,30 @@
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);
}
}