/// Утилиты для работы с состояниями 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; } }