1
1
import { Select as AntdSelect , SelectProps as AntdSelectProps } from 'antd' ;
2
- import { BaseOptionType , DefaultOptionType } from 'antd/lib/select' ;
2
+ import { DefaultOptionType } from 'antd/lib/select' ;
3
3
import { BaseSelectRef } from 'rc-select' ;
4
4
import React , {
5
5
ForwardedRef ,
@@ -12,17 +12,17 @@ import styled from 'styled-components';
12
12
13
13
import { fontSizeFromTheme } from '../styled-utils' ;
14
14
15
+ /** As described in https://4x.ant.design/components/select/#components-select-demo-optgroup. */
15
16
export type GroupedOptionType = {
16
17
label : string ;
17
- options : BaseOptionType | DefaultOptionType ;
18
+ options : DefaultOptionType ;
18
19
} ;
19
20
21
+ export type { DefaultOptionType } from 'antd/lib/select' ;
22
+
20
23
export type SelectProps <
21
24
ValueType = unknown ,
22
- OptionType extends
23
- | BaseOptionType
24
- | DefaultOptionType
25
- | GroupedOptionType = DefaultOptionType ,
25
+ OptionType extends DefaultOptionType | GroupedOptionType = DefaultOptionType ,
26
26
> = AntdSelectProps < ValueType , OptionType > & RefAttributes < BaseSelectRef > ;
27
27
28
28
const StyledSelect = styled ( AntdSelect ) `
@@ -52,8 +52,8 @@ const StyledDropdown = styled.div`
52
52
` ;
53
53
54
54
function SelectInner <
55
- ValueType = unknown ,
56
- OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType ,
55
+ ValueType ,
56
+ OptionType extends DefaultOptionType | GroupedOptionType ,
57
57
> (
58
58
{ children, dropdownRender, ...props } : SelectProps < ValueType , OptionType > ,
59
59
ref : ForwardedRef < BaseSelectRef > ,
@@ -78,15 +78,9 @@ function SelectInner<
78
78
) ;
79
79
}
80
80
81
- export const Select = forwardRef <
82
- BaseSelectRef ,
83
- SelectProps < unknown , BaseOptionType | DefaultOptionType | GroupedOptionType >
84
- > ( SelectInner ) as unknown as ( <
81
+ export const Select = forwardRef ( SelectInner ) as unknown as ( <
85
82
TValue = unknown ,
86
- TOption extends
87
- | BaseOptionType
88
- | DefaultOptionType
89
- | GroupedOptionType = DefaultOptionType ,
83
+ TOption extends DefaultOptionType | GroupedOptionType = DefaultOptionType ,
90
84
> (
91
85
props : SelectProps < TValue , TOption > & RefAttributes < BaseSelectRef > ,
92
86
) => ReactElement ) & {
0 commit comments