* Remove the {...props} pattern and props coupling, and create an eslint rule for that
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>
* Add another test to the new rule
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>
---------
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { forwardRef, InputHTMLAttributes } from 'react';
|
|
import styled from '@emotion/styled';
|
|
|
|
import { textInputStyle } from '@/ui/theme/constants/effects';
|
|
|
|
const StyledDropdownMenuSearchInputContainer = styled.div`
|
|
--vertical-padding: ${({ theme }) => theme.spacing(1)};
|
|
|
|
align-items: center;
|
|
|
|
display: flex;
|
|
flex-direction: row;
|
|
height: calc(36px - 2 * var(--vertical-padding));
|
|
padding: var(--vertical-padding) 0;
|
|
|
|
width: 100%;
|
|
`;
|
|
|
|
const StyledInput = styled.input`
|
|
${textInputStyle}
|
|
|
|
font-size: ${({ theme }) => theme.font.size.sm};
|
|
width: 100%;
|
|
|
|
&[type='number']::-webkit-outer-spin-button,
|
|
&[type='number']::-webkit-inner-spin-button {
|
|
-webkit-appearance: none;
|
|
margin: 0;
|
|
}
|
|
|
|
&[type='number'] {
|
|
-moz-appearance: textfield;
|
|
}
|
|
`;
|
|
|
|
export const DropdownMenuSearchInput = forwardRef<
|
|
HTMLInputElement,
|
|
InputHTMLAttributes<HTMLInputElement>
|
|
>((props, ref) => (
|
|
<StyledDropdownMenuSearchInputContainer>
|
|
{/* eslint-disable-next-line twenty/no-spread-props */}
|
|
<StyledInput autoComplete="off" placeholder="Search" {...props} ref={ref} />
|
|
</StyledDropdownMenuSearchInputContainer>
|
|
));
|