import { useState } from 'react'; import styled from '@emotion/styled'; import Tooltip from './Tooltip'; const TextInput = ({ label, name, type = 'text', onChange, onChangeWithName, tooltipText = '', value = '', placeholder = '', autocomplete = 'new-password', }) => { const [cur_value, setCurValue] = useState(value); const [isFocused, setIsFocused] = useState(false); const handleChange = (inputValue) => { if (onChangeWithName) { onChangeWithName(name, inputValue); } if (onChange) { onChange(inputValue); } }; return ( {tooltipText !== '' && } ); }; const TextInputDiv = styled.div` position: relative; width: 100%; label { color: inherit; font-size: inherit; display: flex; flex-direction: column; gap: 0.2rem; /* Уменьшено еще на 10% (0.225rem * 0.9) */ } input { max-width: 100%; width: 100%; flex-grow: 1; flex-shrink: 1; border: 1px solid #ddd; border-radius: 4px; height: 1.6rem; /* Уменьшено еще на 10% (1.8rem * 0.9) */ min-height: 36px; /* Уменьшено еще на 10% (40px * 0.9) */ background-color: rgb(240, 242, 246); padding: 0 0.4rem; /* Уменьшено еще на 10% (0.45rem * 0.9) */ font-size: inherit; transition: border-color 0.2s ease; &:focus { outline: none; border-color: #258141; box-shadow: 0 0 0 2px rgba(37, 129, 65, 0.1); } &:hover { border-color: #999; } } /* Медиа-запросы для адаптивности */ @media (max-width: 768px) { input { height: 2rem; /* Уменьшено еще на 10% (2.25rem * 0.9) */ min-height: 39px; /* Уменьшено еще на 10% (43px * 0.9) */ font-size: 13px; /* Уменьшено еще на 10% (14.4px * 0.9) */ } } @media (max-width: 480px) { label { font-size: 0.73rem; /* Уменьшено еще на 10% (0.81rem * 0.9) */ } input { height: 2.3rem; /* Уменьшено еще на 10% (2.52rem * 0.9) */ min-height: 42px; /* Уменьшено еще на 10% (47px * 0.9) */ padding: 0 0.6rem; /* Уменьшено еще на 10% (0.675rem * 0.9) */ } } `; export default TextInput;