UNPKG

box-ui-elements-mlh

Version:
67 lines (59 loc) 1.73 kB
// @flow import * as React from 'react'; import { injectIntl } from 'react-intl'; import TextInput from '../../components/text-input'; import messages from './messages'; import type { MetadataFieldValue } from '../../common/types/metadata'; import './TextMetadataField.scss'; type Props = { dataKey: string, dataValue?: MetadataFieldValue, description?: string, displayName: string, error?: React.Node, intl: any, onChange: (key: string, value: MetadataFieldValue) => void, onRemove: (key: string) => void, type?: string, }; const TextMetadataField = ({ dataKey, dataValue, displayName, description, error, intl, onChange, onRemove, type = 'text', }: Props) => { let value = ''; if (typeof dataValue === 'number') { value = dataValue; } else if (dataValue) { value = dataValue; } return ( <TextInput className="bdl-TextMetadataField" description={description} error={error} hideOptionalLabel label={displayName} name={dataKey} onChange={(event: SyntheticKeyboardEvent<HTMLInputElement>) => { const currentTarget = (event.currentTarget: HTMLInputElement); if (currentTarget.value) { onChange(dataKey, currentTarget.value); } else { onRemove(dataKey); } }} placeholder={intl.formatMessage(messages.metadataFieldSetValue)} type={type} value={value} /> ); }; export { TextMetadataField as TextMetadataFieldBase }; export default injectIntl(TextMetadataField);