cabana/src/components/SignalLegendEntry/StringField.js

40 lines
725 B
JavaScript
Raw Normal View History

import React from 'react';
import Field from './Field';
2018-01-22 12:27:05 -07:00
export default ({
fieldSpec,
signal,
isExpanded,
signalEdited,
2022-03-18 09:11:42 -06:00
updateField,
valid
2018-01-22 12:27:05 -07:00
}) => {
const { field, title } = fieldSpec;
const htmlFor = `${signal.name}_${field}`;
let valueCol;
if (isExpanded) {
valueCol = (
<input
id={htmlFor}
type="text"
value={signalEdited || ''}
onChange={(e) => {
2018-01-22 12:27:05 -07:00
updateField(fieldSpec, e.target.value);
}}
/>
);
} else {
valueCol = <span>{signal[field]}</span>;
}
return (
<Field
title={typeof title === 'function' ? title(signal) : title}
2018-01-22 12:27:05 -07:00
htmlFor={htmlFor}
2022-03-18 09:11:42 -06:00
valid={valid}
2018-01-22 12:27:05 -07:00
>
{valueCol}
</Field>
);
};