function SettingsField()

in dialogflow-cx/vpc-sc-demo/frontend/src/SettingsPanel.js [26:70]


function SettingsField(props) {
  const projectDataField = props.projectDataField;
  const colorField = props.colorField;

  function onChange(e) {
    props.dataModel.projectData[projectDataField].set(e.target.value);
    props.dataModel[colorField].set('primary');
  }
  const shrink = !(
    props.dataModel.projectData[projectDataField].current === null ||
    props.dataModel.projectData[projectDataField].current === '' ||
    typeof props.dataModel.projectData[projectDataField].current === 'undefined'
  );

  function keyPress(e) {
    if (e.keyCode === 13) {
      props.dataModel.refetchAssetStatus.set(true);
    }
  }

  return (
    <TextField
      sx={props.sx ? props.sx : {mx: 2, width: 350}}
      label={props.label}
      variant="outlined"
      value={
        props.dataModel.projectData[projectDataField].current === null ||
        typeof props.dataModel.projectData[projectDataField].current ===
          'undefined'
          ? ''
          : props.dataModel.projectData[projectDataField].current
      }
      onChange={onChange}
      onKeyDown={keyPress}
      placeholder={''}
      InputProps={{spellCheck: 'false'}}
      disabled={props.dataModel.terraformLocked.current}
      color={props.dataModel[colorField].current}
      InputLabelProps={{
        shrink: shrink,
      }}
      focused={props.dataModel[colorField].current === 'error' ? true : false}
    />
  );
}