Skip to content

Commit 2ece025

Browse files
Refactor EbayFilterInput to extend EbayTextboxProps and use rest spread
Co-authored-by: HenriqueLimas <2222191+HenriqueLimas@users.noreply.github.com>
1 parent 9c8eef5 commit 2ece025

File tree

1 file changed

+6
-55
lines changed

1 file changed

+6
-55
lines changed

packages/ebayui-core-react/src/ebay-filter-input/filter-input.tsx

Lines changed: 6 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,32 @@
11
/* eslint-disable @typescript-eslint/no-explicit-any */
22
import classnames from "classnames";
3-
import React, { ComponentProps, FC, useRef } from "react";
4-
import { EbayTextbox, EbayTextboxPrefixIcon, EbayTextboxPostfixIcon } from "../ebay-textbox";
3+
import React, { FC, useRef } from "react";
4+
import { EbayTextbox, EbayTextboxPrefixIcon, EbayTextboxPostfixIcon, type EbayTextboxProps } from "../ebay-textbox";
55
import { EbayIconSearch16 } from "../ebay-icon/icons/ebay-icon-search-16";
66
import { EbayIconClear16 } from "../ebay-icon/icons/ebay-icon-clear-16";
7-
import {
8-
EbayChangeEventHandler,
9-
EbayFocusEventHandler,
10-
EbayKeyboardEventHandler,
11-
} from "../common/event-utils/types";
7+
import { EbayChangeEventHandler } from "../common/event-utils/types";
128
import type { Size as TextboxSize } from "../ebay-textbox/types";
139

1410
const validSizes = ["large", "small"] as const;
1511
export type Size = (typeof validSizes)[number];
1612

1713
export type FilterInputEventProps = { value: string };
1814

19-
export type EbayFilterInputProps = Omit<ComponentProps<"input">, "size" | "defaultValue"> & {
15+
export type EbayFilterInputProps = Omit<EbayTextboxProps, "inputSize"> & {
2016
size?: Size;
21-
defaultValue?: string;
2217
a11yClearButton?: string;
2318
a11yControlsId?: string;
2419
onClear?: EbayChangeEventHandler<HTMLInputElement, FilterInputEventProps>;
25-
onKeyDown?: EbayKeyboardEventHandler<HTMLInputElement, FilterInputEventProps>;
26-
onKeyPress?: EbayKeyboardEventHandler<HTMLInputElement, FilterInputEventProps>;
27-
onKeyUp?: EbayKeyboardEventHandler<HTMLInputElement, FilterInputEventProps>;
28-
onChange?: EbayChangeEventHandler<HTMLInputElement, FilterInputEventProps>;
29-
onInputChange?: EbayChangeEventHandler<HTMLInputElement, FilterInputEventProps>;
30-
onFocus?: EbayFocusEventHandler<HTMLInputElement, FilterInputEventProps>;
31-
onBlur?: EbayFocusEventHandler<HTMLInputElement, FilterInputEventProps>;
3220
};
3321

3422
const EbayFilterInput: FC<EbayFilterInputProps> = ({
3523
size: inputSize,
3624
a11yClearButton,
3725
a11yControlsId,
3826
onClear = () => {},
39-
onKeyDown = () => {},
40-
onKeyPress = () => {},
41-
onKeyUp = () => {},
42-
onChange = () => {},
43-
onInputChange = () => {},
44-
onFocus = () => {},
45-
onBlur = () => {},
4627
className,
4728
placeholder = "Filter",
48-
// Only pass through specific input props that are compatible
49-
id,
50-
name,
51-
value,
52-
defaultValue,
53-
disabled,
54-
required,
55-
readOnly,
56-
maxLength,
57-
minLength,
58-
autoComplete,
59-
autoFocus,
60-
tabIndex
29+
...rest
6130
}) => {
6231
const inputRef = useRef<HTMLInputElement>(null);
6332

@@ -105,31 +74,13 @@ const EbayFilterInput: FC<EbayFilterInputProps> = ({
10574
return (
10675
<span className={containerClassName}>
10776
<EbayTextbox
77+
{...rest}
10878
forwardedRef={inputRef}
109-
id={id}
110-
name={name}
111-
value={value}
112-
defaultValue={defaultValue}
113-
disabled={disabled}
114-
required={required}
115-
readOnly={readOnly}
116-
maxLength={maxLength}
117-
minLength={minLength}
118-
autoComplete={autoComplete}
119-
autoFocus={autoFocus} // eslint-disable-line jsx-a11y/no-autofocus
120-
tabIndex={tabIndex}
12179
fluid
12280
type="search"
12381
aria-controls={a11yControlsId}
12482
placeholder={placeholder}
12583
inputSize={textboxSize}
126-
onKeyDown={onKeyDown}
127-
onKeyPress={onKeyPress}
128-
onKeyUp={onKeyUp}
129-
onChange={onChange}
130-
onInputChange={onInputChange}
131-
onFocus={onFocus}
132-
onBlur={onBlur}
13384
>
13485
<EbayTextboxPrefixIcon icon={<EbayIconSearch16 />} />
13586
{a11yClearButton && (

0 commit comments

Comments
 (0)