Skip to content

Commit c9849c8

Browse files
authored
refactor: clean up MultiSelect imports and exports (#18940)
1 parent 7102995 commit c9849c8

15 files changed

+36
-72
lines changed

packages/react/src/components/ComposedModal/ComposedModal.featureflag.stories.js

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,19 @@
11
/**
2-
* Copyright IBM Corp. 2016, 2023
2+
* Copyright IBM Corp. 2016, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import React, { useState, useRef } from 'react';
9-
import ReactDOM from 'react-dom';
8+
import React, { useState } from 'react';
109
import ComposedModal, { ModalBody } from './ComposedModal';
1110
import { ModalHeader } from './ModalHeader';
1211
import { ModalFooter } from './ModalFooter';
13-
import MultiSelect from '../MultiSelect';
14-
import Dropdown from '../Dropdown';
1512
import Select from '../Select';
1613
import SelectItem from '../SelectItem';
1714
import TextInput from '../TextInput';
1815
import Button from '../Button';
19-
import {
20-
StructuredListWrapper,
21-
StructuredListHead,
22-
StructuredListBody,
23-
StructuredListRow,
24-
StructuredListCell,
25-
} from '../StructuredList';
26-
import mdx from './ComposedModal.featureflag.mdx';
2716
import { WithFeatureFlags } from '../../../.storybook/templates/WithFeatureFlags';
28-
import { title } from 'process';
2917

3018
export default {
3119
title: 'Components/ComposedModal/Feature Flag',

packages/react/src/components/ComposedModal/ComposedModal.stories.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
/**
2-
* Copyright IBM Corp. 2016, 2023
2+
* Copyright IBM Corp. 2016, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import React, { useState, useRef } from 'react';
8+
import React, { useState } from 'react';
99
import ReactDOM from 'react-dom';
1010
import ComposedModal, { ModalBody } from './ComposedModal';
1111
import { ModalHeader } from './ModalHeader';
1212
import { ModalFooter } from './ModalFooter';
13-
import MultiSelect from '../MultiSelect';
13+
import { MultiSelect } from '../MultiSelect';
1414
import Dropdown from '../Dropdown';
1515
import Select from '../Select';
1616
import SelectItem from '../SelectItem';
1717
import TextInput from '../TextInput';
1818
import Button from '../Button';
19-
import { Information } from '@carbon/icons-react';
2019
import {
2120
StructuredListWrapper,
2221
StructuredListHead,

packages/react/src/components/FilterableMultiSelect/index.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

packages/react/src/components/FluidMultiSelect/FluidFilterableMultiSelect.tsx

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright IBM Corp. 2022
2+
* Copyright IBM Corp. 2022, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
@@ -8,17 +8,13 @@
88
import PropTypes from 'prop-types';
99
import React, { ForwardedRef, FunctionComponent, RefObject } from 'react';
1010
import classnames from 'classnames';
11-
import { FilterableMultiSelect } from '../FilterableMultiSelect';
12-
import MultiSelect from '../MultiSelect';
1311
import { usePrefix } from '../../internal/usePrefix';
1412
import { FormContext } from '../FluidForm/FormContext';
13+
import type { UseComboboxProps, UseMultipleSelectionProps } from 'downshift';
1514
import {
16-
UseComboboxProps,
17-
UseMultipleSelectionProps,
18-
UseSelectProps,
19-
} from 'downshift';
20-
import { MultiSelectProps } from '../MultiSelect/MultiSelect';
21-
import { FilterableMultiSelectProps } from '../MultiSelect/FilterableMultiSelect';
15+
FilterableMultiSelect,
16+
type FilterableMultiSelectProps,
17+
} from '../MultiSelect';
2218

2319
interface OnChangeData<ItemType> {
2420
selectedItems: ItemType[] | null;

packages/react/src/components/FluidMultiSelect/FluidMultiSelect.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright IBM Corp. 2022
2+
* Copyright IBM Corp. 2022, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
@@ -8,13 +8,14 @@
88
import PropTypes from 'prop-types';
99
import React, { ForwardedRef, RefObject } from 'react';
1010
import classnames from 'classnames';
11-
import { FilterableMultiSelect } from '../FilterableMultiSelect';
12-
import MultiSelect from '../MultiSelect';
11+
import {
12+
FilterableMultiSelect,
13+
MultiSelect,
14+
type MultiSelectProps,
15+
} from '../MultiSelect';
1316
import { usePrefix } from '../../internal/usePrefix';
1417
import { FormContext } from '../FluidForm/FormContext';
1518
import { UseSelectProps } from 'downshift';
16-
import { MultiSelectProps } from '../MultiSelect/MultiSelect';
17-
import { FilterableMultiSelectProps } from '../MultiSelect/FilterableMultiSelect';
1819

1920
interface OnChangeData<ItemType> {
2021
selectedItems: ItemType[] | null;
@@ -187,6 +188,7 @@ const FluidMultiSelect = React.forwardRef(function FluidMultiSelect<ItemType>(
187188
{...other}
188189
/>
189190
) : (
191+
// @ts-ignore
190192
<MultiSelect ref={ref} className={classNames} {...other} />
191193
)}
192194
</FormContext.Provider>

packages/react/src/components/Modal/Modal.featureflag.stories.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright IBM Corp. 2016, 2023
2+
* Copyright IBM Corp. 2016, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
@@ -9,7 +9,7 @@ import React, { useState } from 'react';
99
import Modal from './';
1010
import Button from '../Button';
1111
import Select from '../Select';
12-
import MultiSelect from '../MultiSelect';
12+
import { MultiSelect } from '../MultiSelect';
1313
import Dropdown from '../Dropdown';
1414
import SelectItem from '../SelectItem';
1515
import TextInput from '../TextInput';

packages/react/src/components/Modal/Modal.stories.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
11
/**
2-
* Copyright IBM Corp. 2016, 2023
2+
* Copyright IBM Corp. 2016, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import React, { useState, useRef } from 'react';
8+
import React, { useState } from 'react';
99
import ReactDOM from 'react-dom';
1010
import { action } from '@storybook/addon-actions';
1111
import Modal from './Modal';
1212
import Button from '../Button';
1313
import Select from '../Select';
14-
import MultiSelect from '../MultiSelect';
15-
import { Checkbox as CheckboxIcon, Information } from '@carbon/icons-react';
14+
import { MultiSelect } from '../MultiSelect';
15+
import { Checkbox as CheckboxIcon } from '@carbon/icons-react';
1616
import { Popover, PopoverContent } from '../Popover';
1717
import Dropdown from '../Dropdown';
1818
import SelectItem from '../SelectItem';
1919
import TextInput from '../TextInput';
2020
import ComboBox from '../ComboBox';
2121
import mdx from './Modal.mdx';
22-
import { MenuButton } from '../MenuButton';
23-
import { MenuItem } from '../Menu';
2422
import {
2523
StructuredListWrapper,
2624
StructuredListHead,
@@ -32,7 +30,6 @@ import TextArea from '../TextArea';
3230
import { AILabel, AILabelContent, AILabelActions } from '../AILabel';
3331
import { IconButton } from '../IconButton';
3432
import { View, FolderOpen, Folders } from '@carbon/icons-react';
35-
import { Tooltip } from '../Tooltip';
3633

3734
export default {
3835
title: 'Components/Modal',

packages/react/src/components/MultiSelect/FilterableMultiSelect.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import React, {
3232
ReactElement,
3333
useLayoutEffect,
3434
useMemo,
35+
forwardRef,
3536
} from 'react';
3637
import { defaultFilterItems } from '../ComboBox/tools/filter';
3738
import {
@@ -312,7 +313,7 @@ export interface FilterableMultiSelectProps<ItemType>
312313
warnText?: ReactNode;
313314
}
314315

315-
const FilterableMultiSelect = React.forwardRef(function FilterableMultiSelect<
316+
export const FilterableMultiSelect = forwardRef(function FilterableMultiSelect<
316317
ItemType,
317318
>(
318319
{
@@ -1016,6 +1017,7 @@ const FilterableMultiSelect = React.forwardRef(function FilterableMultiSelect<
10161017
displayName?: any;
10171018
};
10181019

1020+
FilterableMultiSelect.displayName = 'FilterableMultiSelect';
10191021
FilterableMultiSelect.propTypes = {
10201022
/**
10211023
* Deprecated, aria-label is no longer needed
@@ -1213,5 +1215,3 @@ FilterableMultiSelect.propTypes = {
12131215
*/
12141216
warnText: PropTypes.node,
12151217
};
1216-
1217-
export default FilterableMultiSelect;

packages/react/src/components/MultiSelect/MultiSelect.stories.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import { action } from '@storybook/addon-actions';
1212
import { WithLayer } from '../../../.storybook/templates/WithLayer';
1313
import mdx from './MultiSelect.mdx';
1414

15-
import MultiSelect from '.';
16-
import FilterableMultiSelect from './FilterableMultiSelect';
15+
import { FilterableMultiSelect, MultiSelect } from '.';
1716
import Button from '../Button';
1817
import ButtonSet from '../ButtonSet';
1918
import { AILabel, AILabelContent, AILabelActions } from '../AILabel';

packages/react/src/components/MultiSelect/MultiSelect.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ export interface MultiSelectProps<ItemType>
298298
warnText?: ReactNode;
299299
}
300300

301-
const MultiSelect = React.forwardRef(
301+
export const MultiSelect = React.forwardRef(
302302
<ItemType,>(
303303
{
304304
autoAlign = false,
@@ -1120,5 +1120,3 @@ MultiSelect.propTypes = {
11201120
*/
11211121
warnText: PropTypes.node,
11221122
};
1123-
1124-
export default MultiSelect as MultiSelectComponent;

packages/react/src/components/MultiSelect/__tests__/FilterableMultiSelect-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import React from 'react';
99
import { act, render, screen } from '@testing-library/react';
1010
import { getByText } from '@carbon/test-utils/dom';
1111
import userEvent from '@testing-library/user-event';
12-
import FilterableMultiSelect from '../FilterableMultiSelect';
12+
import { FilterableMultiSelect } from '../';
1313
import {
1414
assertMenuOpen,
1515
assertMenuClosed,

packages/react/src/components/MultiSelect/__tests__/MultiSelect-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { getByText, isElementVisible } from '@carbon/test-utils/dom';
1919
import { AILabel } from '../../AILabel';
2020
import Button from '../../Button';
2121
import ButtonSet from '../../ButtonSet';
22-
import MultiSelect from '../';
22+
import { MultiSelect } from '../';
2323
import userEvent from '@testing-library/user-event';
2424

2525
const prefix = 'cds';
@@ -464,7 +464,7 @@ describe('MultiSelect', () => {
464464
item ? (
465465
<span className="test-element">
466466
{item.text}{' '}
467-
<span role="img" alt="fire">
467+
<span role="img" aria-label="fire">
468468
{' '}
469469
🔥
470470
</span>

packages/react/src/components/MultiSelect/index.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,5 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import MultiSelect from './MultiSelect';
9-
import { default as FilterableMultiSelect } from './FilterableMultiSelect';
10-
11-
FilterableMultiSelect.displayName = 'FilterableMultiSelect';
12-
13-
export { FilterableMultiSelect, MultiSelect };
14-
export default MultiSelect;
8+
export * from './FilterableMultiSelect';
9+
export * from './MultiSelect';

packages/react/src/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright IBM Corp. 2016, 2023
2+
* Copyright IBM Corp. 2016, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
@@ -77,7 +77,6 @@ export {
7777
FileUploaderDropContainer,
7878
FileUploaderItem,
7979
} from './components/FileUploader';
80-
export { FilterableMultiSelect } from './components/FilterableMultiSelect';
8180
export { Form } from './components/Form';
8281
export { FluidForm } from './components/FluidForm';
8382
export { FormGroup } from './components/FormGroup';
@@ -107,7 +106,7 @@ export {
107106
export { MenuButton } from './components/MenuButton';
108107
export { Modal } from './components/Modal';
109108
export { ModalWrapper } from './components/ModalWrapper';
110-
export { MultiSelect } from './components/MultiSelect';
109+
export { FilterableMultiSelect, MultiSelect } from './components/MultiSelect';
111110
export {
112111
ActionableNotification,
113112
ToastNotification,

packages/react/src/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright IBM Corp. 2016, 2023
2+
* Copyright IBM Corp. 2016, 2025
33
*
44
* This source code is licensed under the Apache-2.0 license found in the
55
* LICENSE file in the root directory of this source tree.
@@ -42,7 +42,6 @@ export {
4242
useFeatureFlags as unstable_useFeatureFlags, // this export can be removed in v12
4343
} from './components/FeatureFlags';
4444
export * from './components/FileUploader';
45-
export * from './components/FilterableMultiSelect';
4645
export * from './components/FluidForm';
4746
export * from './components/Form';
4847
export * from './components/FormGroup';

0 commit comments

Comments
 (0)