import React, { useState, useEffect } from 'react'; import { View, StyleSheet, Alert } from 'react-native'; import { useRoute, useNavigation } from '@react-navigation/native'; import { RouteProp } from '@react-navigation/native'; import { useTasks } from '../context/TasksContext'; import TaskForm from '../components/TaskForm'; import BottomActionBar from '../components/BottomActionBar'; import { Task } from '../types/task'; import { Dialog } from '@rneui/themed'; type RootStackParamList = { TaskEdit: { task: Task }; }; type TaskEditRouteProp = RouteProp; export default function TaskEditScreen() { const route = useRoute(); const navigation = useNavigation(); const { task: initialTask } = route.params; const { updateTask, runTask } = useTasks(); const [task, setTask] = useState(initialTask); const [originalTask, setOriginalTask] = useState(initialTask); const [isModified, setIsModified] = useState(false); useEffect(() => { if (initialTask) { setTask(initialTask); setOriginalTask(initialTask); } }, [initialTask]); const handleTaskChange = (updatedTask: Task) => { setTask(updatedTask); if (!isModified) { setIsModified(true); } }; const handleSave = () => { if (task) { updateTask(task); setOriginalTask(task); setIsModified(false); Alert.alert('已保存', `任务 "${task.name}" 已被保存。`); } }; const handleRun = () => { if (task) { runTask(task.id); navigation.goBack(); } }; const handleUndo = () => { setTask(originalTask); setIsModified(false); }; const handleRestore = () => { setTask(originalTask); setIsModified(false); }; // 处理库位变化,自动运行任务 const handleLocationBayChange = (updatedTask: Task) => { console.log( '库位已变化,自动运行任务:', updatedTask.parameters.locationBay, ); runTask(updatedTask.id); }; if (!task) { return ( ); } return ( navigation.goBack()} isSaveDisabled={!isModified} /> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', paddingBottom: 60, }, });