flutter-freaccess-hub/lib/features/local/presentation/blocs/local_profile_bloc.dart

92 lines
2.6 KiB
Dart

import 'dart:async';
import 'dart:developer';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter/material.dart';
import 'package:hub/features/storage/index.dart';
import 'package:hub/flutter_flow/flutter_flow_model.dart';
import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:hub/features/local/index.dart';
class LocalProfileEvent {}
class LocalProfileState {
final String cliName;
final String cliUUID;
final String ownerName;
LocalProfileState(
{this.cliName = '', this.cliUUID = '', this.ownerName = ''});
LocalProfileState copyWith(
{String? cliName, String? ownerName, String? cliUUID}) {
return LocalProfileState(
cliName: cliName ?? this.cliName,
ownerName: ownerName ?? this.ownerName,
cliUUID: cliUUID ?? this.cliUUID,
);
}
}
class LocalProfileBloc extends Bloc<LocalProfileEvent, LocalProfileState> {
late StreamSubscription<bool> _completer;
LocalProfileBloc() : super(LocalProfileState()) {
on<LocalProfileEvent>(_onLocalProfileEvent);
_completer = LocalsRepositoryImpl.license.stream.listen((v) {
add(LocalProfileEvent());
});
}
@override
Future<void> close() {
_completer.cancel();
return super.close();
}
Future<void> _onLocalProfileEvent(
LocalProfileEvent event, Emitter<LocalProfileState> emit) async {
final cliName =
(await StorageHelper().get(ProfileStorageKey.clientName.key)) ?? '';
final ownerName =
(await StorageHelper().get(ProfileStorageKey.ownerName.key)) ?? '';
final cliUUID =
(await StorageHelper().get(ProfileStorageKey.clientUUID.key)) ?? '';
emit(state.copyWith(
cliName: cliName, cliUUID: cliUUID, ownerName: ownerName));
}
// void updateProfile(BuildContext context) {
// LocalsRepositoryImpl.license.add(false);
// context.read<MenuBloc>().add(MenuEvent());
// add(LocalProfileEvent());
// LocalsRepositoryImpl.license.add(true);
// }
}
class LocalProfileComponentModel
extends FlutterFlowModel<LocalProfileComponentWidget> {
String cliName = '';
String cliUUID = '';
String ownerName = '';
VoidCallback? setStateCallback;
@override
void initState(BuildContext context) {
getData();
}
Future<void> getData() async {
cliName =
(await StorageHelper().get(ProfileStorageKey.clientName.key)) ?? '';
ownerName =
(await StorageHelper().get(ProfileStorageKey.ownerName.key)) ?? '';
cliUUID =
(await StorageHelper().get(ProfileStorageKey.clientUUID.key)) ?? '';
setStateCallback?.call();
}
@override
void dispose() {}
}