исправление отображения ощибок на экране ввода кода из смс
This commit is contained in:
@@ -7,13 +7,6 @@ import '../../core/utils/logger.dart';
|
||||
import 'chats.dart';
|
||||
import 'contacts.dart';
|
||||
|
||||
class ServerException implements Exception {
|
||||
final String message;
|
||||
const ServerException(this.message);
|
||||
@override
|
||||
String toString() => message;
|
||||
}
|
||||
|
||||
enum AuthRequestType {
|
||||
startAuth('START_AUTH'),
|
||||
resend('RESEND'),
|
||||
@@ -447,10 +440,7 @@ class AccountModule {
|
||||
|
||||
void _checkPacketError(Packet packet, String method) {
|
||||
if (packet.isError) {
|
||||
final errMsg = packet.payload is Map
|
||||
? (packet.payload as Map)['message'] ?? packet.payload.toString()
|
||||
: packet.payload?.toString() ?? 'Неизвестная ошибка';
|
||||
throw ServerException(errMsg.toString());
|
||||
throw PacketError(messageFromErrorPayload(packet.payload));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,26 @@ class Packet {
|
||||
'Packet(ver=$api cmd=$cmd seq=$seq opcode=$opcode payload=$payload)';
|
||||
}
|
||||
|
||||
class PacketError implements Exception {
|
||||
final String message;
|
||||
const PacketError(this.message);
|
||||
@override
|
||||
String toString() => message;
|
||||
}
|
||||
|
||||
String messageFromErrorPayload(dynamic payload) {
|
||||
if (payload is Map) {
|
||||
for (final key in ['localizedMessage', 'message', 'title']) {
|
||||
final v = payload[key];
|
||||
if (v is String && v.trim().isNotEmpty) return v.trim();
|
||||
}
|
||||
return 'Неизвестная ошибка';
|
||||
}
|
||||
if (payload == null) return 'Неизвестная ошибка';
|
||||
final s = payload.toString();
|
||||
return s.isNotEmpty ? s : 'Неизвестная ошибка';
|
||||
}
|
||||
|
||||
/// Упаковка пакета для отправки на сервер
|
||||
Uint8List packPacket(int opcode, Map<dynamic, dynamic> payload, {int seq = 0}) {
|
||||
final header = ByteData(headerSize);
|
||||
|
||||
@@ -68,7 +68,9 @@ class PacketDispatcher {
|
||||
}
|
||||
|
||||
if (packet.isError) {
|
||||
completer.completeError(packet);
|
||||
completer.completeError(
|
||||
PacketError(messageFromErrorPayload(packet.payload)),
|
||||
);
|
||||
} else {
|
||||
completer.complete(packet);
|
||||
}
|
||||
|
||||
@@ -306,8 +306,9 @@ class _CodeConfirmationScreenState extends State<CodeConfirmationScreen>
|
||||
_errorMessage!,
|
||||
style: TextStyle(
|
||||
color: cs.error,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w500,
|
||||
height: 1.35,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user