UNPKG

shinkansen-cogs

Version:
128 lines (110 loc) 2.27 kB
/** * @typedef {CogsTypes.OnEventType} OnEventType * @typedef {CogsTypes.Cogs.ValueProps} ValueProps * @typedef {CogsTypes.Cogs.Text.TextProps} TextProps */ /** * TextCog component */ import React from 'react' import classnames from 'classnames' import { ValueCog } from '#cogs/cogs' import Title from '#cogs/cogs/text/title' import Description from '#cogs/cogs/text/description' import ErrorMessage from '#cogs/cogs/text/error-message' import Field from '#cogs/cogs/text/field' /** * @type {OnEventType} */ function DEFAULT_HANDLE_EVENT () { // } /** * @extends {ValueCog<ValueProps & TextProps>} */ export default class TextCog extends ValueCog { getClassName () { return classnames(super.getClassName(), 'text') } /** * @param {string} name * @param {string | string[]} [value] */ handleChange = (name, value) => { const { onChange = DEFAULT_HANDLE_EVENT } = this.props onChange(name, value) } renderTitle () { const id = this.getId() const { title, required = false, disabled = false, readOnly = false } = this.props return ( <Title id={id} title={title} required={required} disabled={disabled} readOnly={readOnly} /> ) } renderDescription () { const { description } = this.props return ( <Description description={description} /> ) } renderErrorMessage () { const { errorMessage } = this.props return ( <ErrorMessage errorMessage={errorMessage} /> ) } renderField () { const id = this.getId() const { name, value, defaultValue, required = false, disabled = false, readOnly = false, tabIndex, accessKey, placeholder, fieldRef } = this.props return ( <Field name={name} id={id} value={value} defaultValue={defaultValue} required={required} disabled={disabled} readOnly={readOnly} tabIndex={tabIndex} accessKey={accessKey} placeholder={placeholder} onChange={this.handleChange} fieldRef={fieldRef} /> ) } }