This commit is contained in:
jantunesmesias 2024-08-22 14:42:23 -03:00
parent 248dbd6bdd
commit 0aa9648616
2 changed files with 66 additions and 84 deletions

View File

@ -373,6 +373,10 @@ Future<bool> checkLocals({
required HomePageModel model, required HomePageModel model,
required void Function(void Function()) safeSetState, required void Function(void Function()) safeSetState,
}) async { }) async {
bool itemFound = false;
var modalResult;
do {
// A chamada para a API permanece a mesma, assumindo que é necessária sempre. // A chamada para a API permanece a mesma, assumindo que é necessária sempre.
final response = await PhpGroup.getLocalsCall.call( final response = await PhpGroup.getLocalsCall.call(
devUUID: AppState().devUUID, devUUID: AppState().devUUID,
@ -386,7 +390,7 @@ Future<bool> checkLocals({
// Uso eficiente de coleções para verificar a condição desejada. // Uso eficiente de coleções para verificar a condição desejada.
final String uuid = cliUUID ?? AppState().cliUUID; final String uuid = cliUUID ?? AppState().cliUUID;
final bool itemFound = response.jsonBody['locais'].any( itemFound = response.jsonBody['locais'].any(
(local) => local['CLI_ID'] == uuid && local['CLU_STATUS'] == "A", (local) => local['CLI_ID'] == uuid && local['CLU_STATUS'] == "A",
); );
@ -395,10 +399,11 @@ Future<bool> checkLocals({
return true; return true;
} else { } else {
// A chamada para showModalBottomSheet permanece, mas a atualização da UI é otimizada. // A chamada para showModalBottomSheet permanece, mas a atualização da UI é otimizada.
await showModalBottomSheet( modalResult = await showModalBottomSheet(
isScrollControlled: true, isScrollControlled: true,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
enableDrag: false, enableDrag: false,
isDismissible: false,
context: context, context: context,
builder: (context) => GestureDetector( builder: (context) => GestureDetector(
onTap: () => model.unfocusNode.canRequestFocus onTap: () => model.unfocusNode.canRequestFocus
@ -412,8 +417,10 @@ Future<bool> checkLocals({
); );
safeSetState( safeSetState(
() {}); // Chamada otimizada fora do then para evitar encadeamentos desnecessários. () {}); // Chamada otimizada fora do then para evitar encadeamentos desnecessários.
return false;
} }
} while (modalResult != true);
return false;
} }
Future answersRequest(BuildContext context, String? ref, String? task, Future answersRequest(BuildContext context, String? ref, String? task,

View File

@ -41,43 +41,19 @@ class _HomePageWidgetState extends State<HomePageWidget> {
void fetchData() async { void fetchData() async {
bool success = false; bool success = false;
while (!success) { while (!success) {
await PhpGroup.getDadosCall final response = await PhpGroup.getDadosCall.call(
.call(
devUUID: AppState().devUUID, devUUID: AppState().devUUID,
userUUID: AppState().userUUID, userUUID: AppState().userUUID,
cliUUID: AppState().cliUUID, cliUUID: AppState().cliUUID,
atividade: 'getDados') atividade: 'getDados',
.then((value) async {
switch (value.statusCode) {
case 200:
if (value.jsonBody['error'] == false) {
success = true;
AppState().whatsapp = value.jsonBody['whatsapp'];
AppState().provisional = value.jsonBody['provisional'];
} else if (value.jsonBody['error_msg'] ==
'O seu vinculo nao esta ativo.') {
success = true;
showModalBottomSheet(
isScrollControlled: true,
backgroundColor: Colors.transparent,
enableDrag: false,
isDismissible: false,
context: context,
builder: (context) {
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context)
.requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Padding(
padding: MediaQuery.viewInsetsOf(context),
child: const BottomArrowLinkedLocalsComponentWidget(),
),
); );
},
).then((value) => safeSetState(() { switch (response.statusCode) {
case 200:
if (response.jsonBody['error'] == false) {
success = true; success = true;
})); AppState().whatsapp = response.jsonBody['whatsapp'];
AppState().provisional = response.jsonBody['provisional'];
} }
break; break;
default: default:
@ -85,7 +61,6 @@ class _HomePageWidgetState extends State<HomePageWidget> {
safeSetState(() {}); safeSetState(() {});
break; break;
} }
});
} }
} }