function ScenarioInput()

in 7-reasoning/shipmentPlanning/frontend/src/ScenarioInput.js [6:52]


function ScenarioInput({ onSubmit, isProcessing }) {
  const [inputText, setInputText] = useState('');

  const handleSubmit = () => {
    if (!inputText.trim()) {
      alert('Please enter a scenario.');
      return;
    }
    onSubmit(inputText);
  };

  const handleKeyPress = (e) => {
    if (e.key === 'Enter' && !e.shiftKey) {
      e.preventDefault(); // Prevents a new line in the textarea
      handleSubmit();
    }
  };

  return (
    <Box mb={4} width="100%" px={2} pt={2}>
      <TextField
        label="Scenario"
        multiline
        fullWidth
        minRows={6}
        value={inputText}
        onChange={(e) => setInputText(e.target.value)}
        onKeyPress={handleKeyPress}
        placeholder="Enter your scenario here..."
        disabled={isProcessing}
        variant="outlined"
        InputProps={{ style: { fontSize: 16 } }}
      />
      <Box mt={2}>
        <Button
          variant="contained"
          color="primary"
          onClick={handleSubmit}
          disabled={isProcessing}
          size="large"
        >
          {isProcessing ? 'Processing...' : 'Submit'}
        </Button>
      </Box>
    </Box>
  );
}