/** @jsxImportSource @emotion/react */ import { css } from '@emotion/react'; import { ReactNode } from 'react'; import { inputElementCss, RcInputElementCssOptions } from './inputElementCss'; export interface RcInputProps extends RcInputElementCssOptions { inputRef?: (e: HTMLInputElement) => void; name?: string; label?: string; value?: string; defaultValue?: string | number; onChange?: (event: React.ChangeEvent) => void; onBlur?: (event: React.FocusEvent) => void; onEnterKeyUp?: () => void; password?: boolean; suffix?: ReactNode; suffixPaddingRight?: string; readOnly?: boolean; } export const RcInput: React.FC = ({ inputRef, name, label, value, defaultValue, onChange, onBlur, onEnterKeyUp, password, suffix, suffixPaddingRight = '20px', readOnly = false, ...rest }) => { const root = inputElementCss(readOnly, false, rest); const { fontSize = '18px', height = '50px', mutedColor = '#898989' } = rest; return (
{ if (ev.key === 'Enter') { onEnterKeyUp(); } } : undefined } readOnly={readOnly} /> {suffix && (
{suffix}
)}
); };