forked from eatvio/eatvio_app
29 lines
1.2 KiB
Dart
29 lines
1.2 KiB
Dart
/// Утилиты для работы с состояниями Cubit'ов
|
||
class StateUtils {
|
||
/// Проверяет, является ли состояние загрузочным
|
||
static bool isLoading(dynamic state) {
|
||
return state.toString().contains('loading') || state.toString().contains('Loading');
|
||
}
|
||
|
||
/// Проверяет, является ли состояние загруженным
|
||
static bool isLoaded(dynamic state) {
|
||
return state.toString().contains('loaded') || state.toString().contains('Loaded');
|
||
}
|
||
|
||
/// Проверяет, является ли состояние ошибочным
|
||
static bool isError(dynamic state) {
|
||
return state.toString().contains('error') || state.toString().contains('Error');
|
||
}
|
||
|
||
/// Получает сообщение об ошибке из состояния
|
||
static String? getErrorMessage(dynamic state) {
|
||
if (isError(state)) {
|
||
// Попытка извлечь сообщение об ошибке из состояния
|
||
final stateString = state.toString();
|
||
final errorMatch = RegExp(r'error[:\s]+([^,}]+)', caseSensitive: false).firstMatch(stateString);
|
||
return errorMatch?.group(1)?.trim();
|
||
}
|
||
return null;
|
||
}
|
||
}
|