feat(food): 添加拍摄指引弹窗与相册选择功能

- 在相机界面新增“拍摄示例”弹窗,展示正确/错误拍摄对比图
- 底部控制栏增加相册选择按钮与帮助按钮
- 优化控制栏布局为左右分布,提升操作便捷性
- 移除 food-recognition 中冗余的 isUploading 状态,简化上传流程
This commit is contained in:
richarjiang
2025-09-04 10:52:00 +08:00
parent 6cb0435b30
commit 4ae419754a
2 changed files with 179 additions and 6 deletions

View File

@@ -29,8 +29,7 @@ export default function FoodRecognitionScreen() {
}>();
const { imageUri, mealType } = params;
const { upload, uploading } = useCosUpload();
const [isUploading, setIsUploading] = useState(false);
const { upload } = useCosUpload();
const [showRecognitionProcess, setShowRecognitionProcess] = useState(false);
const [recognitionLogs, setRecognitionLogs] = useState<string[]>([]);
const [currentStep, setCurrentStep] = useState<'idle' | 'uploading' | 'recognizing' | 'completed' | 'failed'>('idle');
@@ -128,7 +127,6 @@ export default function FoodRecognitionScreen() {
setShowRecognitionProcess(true);
setRecognitionLogs([]);
setCurrentStep('uploading');
setIsUploading(true);
dispatch(setLoading(true));
addLog('📤 正在上传图片到云端...');
@@ -167,7 +165,7 @@ export default function FoodRecognitionScreen() {
const recognitionId = `recognition_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
// 保存识别结果到 Redux
await dispatch(saveRecognitionResult({
dispatch(saveRecognitionResult({
id: recognitionId,
result: recognitionResult
}));
@@ -184,7 +182,6 @@ export default function FoodRecognitionScreen() {
setCurrentStep('failed');
dispatch(setError('食物识别失败,请重试'));
} finally {
setIsUploading(false);
dispatch(setLoading(false));
}
};