WIP
This commit is contained in:
parent
a7ef2a6d45
commit
6a89cb7bce
|
@ -1,94 +0,0 @@
|
|||
// home_page_bloc.dart
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hub/app_state.dart';
|
||||
import 'package:hub/backend/api_requests/api_calls.dart';
|
||||
import 'package:hub/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
|
||||
import 'package:hub/shared/utils/dialog_util.dart';
|
||||
|
||||
import 'home_page_event.dart';
|
||||
import 'home_page_state.dart';
|
||||
|
||||
class HomePageBloc extends Bloc<HomePageEvent, HomePageState> {
|
||||
HomePageBloc() : super(HomePageInitial()) {
|
||||
on<LoadData>(_onLoadData);
|
||||
on<ToggleGrid>(_onToggleGrid);
|
||||
}
|
||||
|
||||
Future<void> _onLoadData(LoadData event, Emitter<HomePageState> emit) async {
|
||||
emit(HomePageLoading());
|
||||
try {
|
||||
final response = await PhpGroup.getDadosCall.call(
|
||||
devUUID: AppState().devUUID,
|
||||
userUUID: AppState().userUUID,
|
||||
cliUUID: AppState().cliUUID,
|
||||
atividade: 'getDados',
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
final error = response.jsonBody['error'];
|
||||
final errorMsg = response.jsonBody['error_msg'];
|
||||
|
||||
if (error == false) {
|
||||
AppState().whatsapp = response.jsonBody['whatsapp'];
|
||||
AppState().provisional = response.jsonBody['provisional'];
|
||||
AppState().name = response.jsonBody['visitado']['VDO_NOME'];
|
||||
emit(HomePageLoaded());
|
||||
} else {
|
||||
await DialogUtil.warningDefault(AppState().context!)
|
||||
.whenComplete(() => _checkLocal());
|
||||
}
|
||||
} else {
|
||||
await DialogUtil.warningDefault(AppState().context!)
|
||||
.whenComplete(() => _checkLocal());
|
||||
}
|
||||
} catch (e) {
|
||||
emit(HomePageError(message: 'Error in checkData: $e'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onToggleGrid(
|
||||
ToggleGrid event, Emitter<HomePageState> emit) async {
|
||||
if (state is HomePageLoaded) {
|
||||
final currentState = state as HomePageLoaded;
|
||||
emit(const HomePageLoaded());
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _checkLocal() async {
|
||||
try {
|
||||
final response = await PhpGroup.getLocalsCall.call(
|
||||
devUUID: AppState().devUUID,
|
||||
userUUID: AppState().userUUID,
|
||||
);
|
||||
|
||||
List<dynamic> locals = response.jsonBody['locais'] ?? [];
|
||||
final activeLocals =
|
||||
locals.where((local) => local['CLU_STATUS'] == 'A').toList();
|
||||
|
||||
if (activeLocals.isEmpty || AppState().cliUUID.isEmpty) {
|
||||
await _showBottomSheet();
|
||||
} else {
|
||||
add(LoadData());
|
||||
}
|
||||
} catch (e) {
|
||||
await _showBottomSheet();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _showBottomSheet() async {
|
||||
await showModalBottomSheet(
|
||||
isScrollControlled: true,
|
||||
backgroundColor: Colors.transparent,
|
||||
enableDrag: false,
|
||||
isDismissible: false,
|
||||
context: AppState().context!,
|
||||
builder: (context) => Padding(
|
||||
padding: MediaQuery.viewInsetsOf(context),
|
||||
child: const BottomArrowLinkedLocalsComponentWidget(),
|
||||
),
|
||||
).then((_) async {
|
||||
add(LoadData());
|
||||
});
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
// home_page_event.dart
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class HomePageEvent extends Equatable {
|
||||
const HomePageEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class LoadData extends HomePageEvent {}
|
||||
|
||||
class ToggleGrid extends HomePageEvent {}
|
|
@ -1,29 +0,0 @@
|
|||
// home_page_state.dart
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class HomePageState extends Equatable {
|
||||
const HomePageState();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HomePageInitial extends HomePageState {}
|
||||
|
||||
class HomePageLoading extends HomePageState {}
|
||||
|
||||
class HomePageLoaded extends HomePageState {
|
||||
const HomePageLoaded();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HomePageError extends HomePageState {
|
||||
final String message;
|
||||
|
||||
const HomePageError({required this.message});
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
Loading…
Reference in New Issue