From 90d261487d0d6bf2f29abde7e79fe2c013539aa2 Mon Sep 17 00:00:00 2001 From: Tatsiana Kostsikava Date: Fri, 24 Oct 2025 14:20:38 +0200 Subject: [PATCH 1/4] add data attribute to react-select --- .changeset/strange-grapes-mix.md | 5 +++++ docs/examples/BasicMulti.tsx | 3 +++ docs/examples/BasicSingle.tsx | 3 +++ packages/react-select/src/Select.tsx | 10 +++++++-- .../src/__tests__/Select.test.tsx | 21 +++++++++++++++++++ 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 .changeset/strange-grapes-mix.md diff --git a/.changeset/strange-grapes-mix.md b/.changeset/strange-grapes-mix.md new file mode 100644 index 0000000000..b76bfbbef7 --- /dev/null +++ b/.changeset/strange-grapes-mix.md @@ -0,0 +1,5 @@ +--- +'react-select': minor +--- + +Add `dataAttributes` prop to allow passing data attributes (e.g., `data-testid`) to the select container diff --git a/docs/examples/BasicMulti.tsx b/docs/examples/BasicMulti.tsx index 9cc30d6d43..c6254eeb56 100644 --- a/docs/examples/BasicMulti.tsx +++ b/docs/examples/BasicMulti.tsx @@ -11,5 +11,8 @@ export default () => ( options={colourOptions} className="basic-multi-select" classNamePrefix="select" + dataAttributes={{ + 'data-testid': 'basic-multi-select' + }} /> ); diff --git a/docs/examples/BasicSingle.tsx b/docs/examples/BasicSingle.tsx index 872b56c330..60a3a5e9bf 100644 --- a/docs/examples/BasicSingle.tsx +++ b/docs/examples/BasicSingle.tsx @@ -30,6 +30,9 @@ export default () => { isSearchable={isSearchable} name="color" options={colourOptions} + dataAttributes={{ + 'data-testid': 'basic-single-select' + }} />
; } export const defaultProps = { @@ -2202,7 +2204,7 @@ export default class Select< const { Control, IndicatorsContainer, SelectContainer, ValueContainer } = this.getComponents(); - const { className, id, isDisabled, menuIsOpen } = this.props; + const { className, id, isDisabled, menuIsOpen, dataAttributes } = this.props; const { isFocused } = this.state; const commonProps = (this.commonProps = this.getCommonProps()); @@ -2213,6 +2215,7 @@ export default class Select< innerProps={{ id: id, onKeyDown: this.onKeyDown, + ...dataAttributes, }} isDisabled={isDisabled} isFocused={isFocused} @@ -2251,4 +2254,7 @@ export type PublicBaseSelectProps< Option, IsMulti extends boolean, Group extends GroupBase