diff --git a/src/renderer/components/select/select.test.tsx b/src/renderer/components/select/select.test.tsx
index 0df53bd13e..8db25354d3 100644
--- a/src/renderer/components/select/select.test.tsx
+++ b/src/renderer/components/select/select.test.tsx
@@ -63,7 +63,7 @@ describe("", () => {
const onChange = jest.fn();
- const { container } = render();
+ const { container } = render();
expect(container).toBeInstanceOf(HTMLElement);
});
@@ -82,7 +82,7 @@ describe("", () => {
const onChange = jest.fn();
- const { container } = render();
+ const { container } = render();
const selectedValueContainer = container.querySelector(".Select__single-value");
expect(selectedValueContainer.textContent).toBe(options[0].label);
@@ -102,12 +102,12 @@ describe("", () => {
const onChange = jest.fn();
- const { container, rerender } = render();
+ const { container, rerender } = render();
const selectedValueContainer = container.querySelector(".Select__single-value");
expect(selectedValueContainer.textContent).toBe(options[0].label);
- rerender();
+ rerender();
expect(container.querySelector(".Select__single-value").textContent).toBe(options[1].label);
});
@@ -126,12 +126,12 @@ describe("", () => {
const onChange = jest.fn();
- const { container, rerender } = render();
+ const { container, rerender } = render();
const selectedValueContainer = container.querySelector(".Select__single-value");
expect(selectedValueContainer.textContent).toBe(options[0].label);
- rerender();
+ rerender();
expect(container.querySelector(".Select__single-value")).not.toBeInTheDocument();
});
@@ -150,12 +150,12 @@ describe("", () => {
const onChange = jest.fn();
- const { container, rerender } = render();
+ const { container, rerender } = render();
const selectedValueContainer = container.querySelector(".Select__single-value");
expect(selectedValueContainer.textContent).toBe(options[0].label);
- rerender();
+ rerender();
expect(container.querySelector(".Select__single-value")).not.toBeInTheDocument();
});
diff --git a/src/renderer/components/select/select.tsx b/src/renderer/components/select/select.tsx
index c2712cf25f..4efcd380a8 100644
--- a/src/renderer/components/select/select.tsx
+++ b/src/renderer/components/select/select.tsx
@@ -30,7 +30,10 @@ export interface SelectOption {
label?: React.ReactNode;
}
-export interface SelectProps extends ReactSelectProps, CreatableProps {
+export interface SelectProps
+ extends ReactSelectProps,
+ CreatableProps {
+ id: string;
value?: T;
themeName?: "dark" | "light" | "outlined" | "lens";
menuClass?: string;
@@ -41,7 +44,7 @@ export interface SelectProps extends ReactSelectProps, Crea
@observer
export class Select extends React.Component {
- static defaultProps: SelectProps = {
+ static defaultProps: Omit = {
autoConvertOptions: true,
menuPortalTarget: document.body,
menuPlacement: "auto",
@@ -53,7 +56,8 @@ export class Select extends React.Component {
}
@computed get themeClass() {
- const themeName = this.props.themeName || ThemeStore.getInstance().activeTheme.type;
+ const themeName =
+ this.props.themeName || ThemeStore.getInstance().activeTheme.type;
return `theme-${themeName}`;
}
@@ -88,7 +92,9 @@ export class Select extends React.Component {
if (autoConvertOptions && Array.isArray(options)) {
return options.map(opt => {
- return this.isValidOption(opt) ? opt : { value: opt, label: String(opt) };
+ return this.isValidOption(opt)
+ ? opt
+ : { value: opt, label: String(opt) };
});
}
@@ -114,13 +120,21 @@ export class Select extends React.Component {
render() {
const {
- className, menuClass, isCreatable, autoConvertOptions,
- value, options, components = {}, ...props
+ className,
+ menuClass,
+ isCreatable,
+ autoConvertOptions,
+ value,
+ options,
+ components = {},
+ id: inputId,
+ ...props
} = this.props;
const WrappedMenu = components.Menu ?? Menu;
const selectProps: Partial = {
...props,
+ inputId,
styles: this.styles,
value: autoConvertOptions ? this.selectedOption : value,
options: autoConvertOptions ? this.options : options,