// ignore_for_file: invalid_use_of_protected_member, unnecessary_this part of '../../boxing_page.dart'; extension _BoxingStatusPart on _BoxingPageState { StatusDotColor _dotForActionError(BoxingActionErrorKind? kind) { return switch (kind) { BoxingActionErrorKind.network => StatusDotColor.yellow, BoxingActionErrorKind.duplicate => StatusDotColor.amber, _ => StatusDotColor.red, }; } void _showActionError( BoxingActionResult action, { required String fallback, }) { _feedbackService.trigger(switch (action.errorKind) { BoxingActionErrorKind.network => FeedbackEvent.networkError, BoxingActionErrorKind.duplicate => FeedbackEvent.duplicateBoxNo, _ => FeedbackEvent.submitFailure, }); this._showStatusOverride( action.errorMessage ?? fallback, this._dotForActionError(action.errorKind), const Duration(seconds: 2), ); } void _showStatusOverride(String text, StatusDotColor dot, Duration duration) { setState(() { _statusOverrideText = text; _statusOverrideDot = dot; }); Future.delayed(duration, () { if (mounted) { setState(() { _statusOverrideText = null; _statusOverrideDot = null; }); } }); } void _jumpToCompletedBox() { final boxNo = _completedJumpBoxNo; if (boxNo == null) return; setState(() { _boxNoController.text = boxNo.toString(); _completedJumpBoxNo = null; _statusOverrideText = null; _statusOverrideDot = null; }); } void _openDetail() { Navigator.push( context, MaterialPageRoute( builder: (_) => BoxingDetailPage( paichanNo: _paichanNo ?? '', existingBoxes: _existingBoxes, ), ), ); } void _updateBaseStatus() { final status = boxingStatusFor( isAutoProcessing: _isAutoProcessing, isSubmitting: _isSubmitting, isDuplicateBoxNo: _isDuplicateBoxNo, quantityTooHigh: _quantityTooHigh, isEditingAssigned: _editingAssignedItemId != null, isDeletingAssigned: _deletingAssignedItemId != null, hasPaichanSwitchNotice: _paichanSwitchNotice != null, phase: _phase, isMultiCode: _mode == BoxingMode.multiCode, hasVisibleManyToOneItems: _visibleManyToOnePackedItems.isNotEmpty, remainingQuantity: _remainingQuantity, boxNoText: _boxNoController.text, ); _statusDot = status.dot; _statusText = status.text; } }