WIP
This commit is contained in:
parent
248dbd6bdd
commit
0aa9648616
|
@ -373,47 +373,54 @@ Future<bool> checkLocals({
|
|||
required HomePageModel model,
|
||||
required void Function(void Function()) safeSetState,
|
||||
}) async {
|
||||
// A chamada para a API permanece a mesma, assumindo que é necessária sempre.
|
||||
final response = await PhpGroup.getLocalsCall.call(
|
||||
devUUID: AppState().devUUID,
|
||||
userUUID: AppState().userUUID,
|
||||
);
|
||||
bool itemFound = false;
|
||||
var modalResult;
|
||||
|
||||
// Verificação rápida de erro para evitar processamento desnecessário.
|
||||
if (response.jsonBody['error']) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Uso eficiente de coleções para verificar a condição desejada.
|
||||
final String uuid = cliUUID ?? AppState().cliUUID;
|
||||
final bool itemFound = response.jsonBody['locais'].any(
|
||||
(local) => local['CLI_ID'] == uuid && local['CLU_STATUS'] == "A",
|
||||
);
|
||||
|
||||
// Log e retorno condicional baseado no resultado da busca.
|
||||
if (itemFound) {
|
||||
return true;
|
||||
} else {
|
||||
// A chamada para showModalBottomSheet permanece, mas a atualização da UI é otimizada.
|
||||
await showModalBottomSheet(
|
||||
isScrollControlled: true,
|
||||
backgroundColor: Colors.transparent,
|
||||
enableDrag: false,
|
||||
context: context,
|
||||
builder: (context) => GestureDetector(
|
||||
onTap: () => model.unfocusNode.canRequestFocus
|
||||
? FocusScope.of(context).requestFocus(model.unfocusNode)
|
||||
: FocusScope.of(context).unfocus(),
|
||||
child: Padding(
|
||||
padding: MediaQuery.viewInsetsOf(context),
|
||||
child: const BottomArrowLinkedLocalsComponentWidget(),
|
||||
),
|
||||
),
|
||||
do {
|
||||
// A chamada para a API permanece a mesma, assumindo que é necessária sempre.
|
||||
final response = await PhpGroup.getLocalsCall.call(
|
||||
devUUID: AppState().devUUID,
|
||||
userUUID: AppState().userUUID,
|
||||
);
|
||||
safeSetState(
|
||||
() {}); // Chamada otimizada fora do then para evitar encadeamentos desnecessários.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Verificação rápida de erro para evitar processamento desnecessário.
|
||||
if (response.jsonBody['error']) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Uso eficiente de coleções para verificar a condição desejada.
|
||||
final String uuid = cliUUID ?? AppState().cliUUID;
|
||||
itemFound = response.jsonBody['locais'].any(
|
||||
(local) => local['CLI_ID'] == uuid && local['CLU_STATUS'] == "A",
|
||||
);
|
||||
|
||||
// Log e retorno condicional baseado no resultado da busca.
|
||||
if (itemFound) {
|
||||
return true;
|
||||
} else {
|
||||
// A chamada para showModalBottomSheet permanece, mas a atualização da UI é otimizada.
|
||||
modalResult = await showModalBottomSheet(
|
||||
isScrollControlled: true,
|
||||
backgroundColor: Colors.transparent,
|
||||
enableDrag: false,
|
||||
isDismissible: false,
|
||||
context: context,
|
||||
builder: (context) => GestureDetector(
|
||||
onTap: () => model.unfocusNode.canRequestFocus
|
||||
? FocusScope.of(context).requestFocus(model.unfocusNode)
|
||||
: FocusScope.of(context).unfocus(),
|
||||
child: Padding(
|
||||
padding: MediaQuery.viewInsetsOf(context),
|
||||
child: const BottomArrowLinkedLocalsComponentWidget(),
|
||||
),
|
||||
),
|
||||
);
|
||||
safeSetState(
|
||||
() {}); // Chamada otimizada fora do then para evitar encadeamentos desnecessários.
|
||||
}
|
||||
} while (modalResult != true);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Future answersRequest(BuildContext context, String? ref, String? task,
|
||||
|
|
|
@ -41,51 +41,26 @@ class _HomePageWidgetState extends State<HomePageWidget> {
|
|||
void fetchData() async {
|
||||
bool success = false;
|
||||
while (!success) {
|
||||
await PhpGroup.getDadosCall
|
||||
.call(
|
||||
devUUID: AppState().devUUID,
|
||||
userUUID: AppState().userUUID,
|
||||
cliUUID: AppState().cliUUID,
|
||||
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(() {
|
||||
success = true;
|
||||
}));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
await DialogUtil.warningDefault(context);
|
||||
safeSetState(() {});
|
||||
break;
|
||||
}
|
||||
});
|
||||
final response = await PhpGroup.getDadosCall.call(
|
||||
devUUID: AppState().devUUID,
|
||||
userUUID: AppState().userUUID,
|
||||
cliUUID: AppState().cliUUID,
|
||||
atividade: 'getDados',
|
||||
);
|
||||
|
||||
switch (response.statusCode) {
|
||||
case 200:
|
||||
if (response.jsonBody['error'] == false) {
|
||||
success = true;
|
||||
AppState().whatsapp = response.jsonBody['whatsapp'];
|
||||
AppState().provisional = response.jsonBody['provisional'];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
await DialogUtil.warningDefault(context);
|
||||
safeSetState(() {});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue