Skip to content

Commit 9bff633

Browse files
authored
chore: by pass rc-select semantic structure (#630)
* test: update test case * test: more * chore: update logic * chore: test refactor * chore: ts support * chore: clean up
1 parent 44ac86b commit 9bff633

File tree

10 files changed

+360
-188
lines changed

10 files changed

+360
-188
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"test": "rc-test"
4444
},
4545
"dependencies": {
46-
"@rc-component/select": "~1.2.0-alpha.2",
46+
"@rc-component/select": "~1.2.0-alpha.3",
4747
"@rc-component/tree": "~1.0.0",
4848
"@rc-component/util": "^1.3.0",
4949
"clsx": "^2.1.1"

src/Cascader.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,15 @@ export type GetOptionType<
152152
Multiple extends boolean | React.ReactNode = false,
153153
> = false extends Multiple ? OptionType[] : OptionType[][];
154154

155-
type SemanticName = 'input' | 'prefix' | 'suffix';
155+
type SemanticName =
156+
| 'input'
157+
| 'prefix'
158+
| 'suffix'
159+
| 'placeholder'
160+
| 'content'
161+
| 'item'
162+
| 'itemContent'
163+
| 'itemRemove';
156164
type PopupSemantic = 'list' | 'listItem';
157165
export interface CascaderProps<
158166
OptionType extends DefaultOptionType = DefaultOptionType,
@@ -451,16 +459,8 @@ const Cascader = React.forwardRef<CascaderRef, InternalCascaderProps>((props, re
451459
prefixCls={prefixCls}
452460
autoClearSearchValue={autoClearSearchValue}
453461
popupMatchSelectWidth={popupMatchSelectWidth}
454-
classNames={{
455-
prefix: classNames?.prefix,
456-
suffix: classNames?.suffix,
457-
input: classNames?.input,
458-
}}
459-
styles={{
460-
prefix: styles?.prefix,
461-
suffix: styles?.suffix,
462-
input: styles?.input,
463-
}}
462+
classNames={classNames}
463+
styles={styles}
464464
popupStyle={{
465465
...popupStyle,
466466
...customPopupStyle,

tests/__snapshots__/search.spec.tsx.snap

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,32 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

33
exports[`Cascader.Search should correct render Cascader with same field name of label and value 1`] = `
4-
<div
5-
class="rc-cascader rc-cascader-single rc-cascader-open rc-cascader-show-search"
6-
>
4+
[
75
<div
8-
class="rc-cascader-selector"
6+
class="rc-cascader rc-cascader-single rc-cascader-open rc-cascader-show-search"
97
>
10-
<span
11-
class="rc-cascader-selection-wrap"
8+
<div
9+
class="rc-cascader-content"
1210
>
13-
<span
14-
class="rc-cascader-selection-search"
15-
>
16-
<input
17-
aria-autocomplete="list"
18-
aria-controls="test-id_list"
19-
aria-expanded="true"
20-
aria-haspopup="listbox"
21-
aria-owns="test-id_list"
22-
autocomplete="off"
23-
class="rc-cascader-selection-search-input"
24-
id="test-id"
25-
role="combobox"
26-
type="search"
27-
value="z"
28-
/>
29-
</span>
30-
<span
31-
class="rc-cascader-selection-placeholder"
11+
<div
12+
class="rc-cascader-placeholder"
3213
style="visibility: hidden;"
3314
/>
34-
</span>
35-
</div>
15+
<input
16+
aria-autocomplete="list"
17+
aria-controls="test-id_list"
18+
aria-expanded="true"
19+
aria-haspopup="listbox"
20+
aria-owns="test-id_list"
21+
autocomplete="off"
22+
class="rc-cascader-input"
23+
id="test-id"
24+
role="combobox"
25+
type="search"
26+
value="z"
27+
/>
28+
</div>
29+
</div>,
3630
<div
3731
class="rc-cascader-dropdown rc-cascader-dropdown-placement-bottomLeft"
3832
style="--arrow-x: 0px; --arrow-y: 0px; left: -1000vw; top: -1000vh; box-sizing: border-box;"
@@ -74,6 +68,6 @@ exports[`Cascader.Search should correct render Cascader with same field name of
7468
</ul>
7569
</div>
7670
</div>
77-
</div>
78-
</div>
71+
</div>,
72+
]
7973
`;

tests/fieldNames.spec.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('Cascader.FieldNames', () => {
3939
);
4040

4141
// Open
42-
wrapper.find('.rc-cascader-selector').simulate('mousedown');
42+
wrapper.find('.rc-cascader').first().simulate('mousedown');
4343
expect(wrapper.isOpen()).toBeTruthy();
4444

4545
// Check values
@@ -76,7 +76,7 @@ describe('Cascader.FieldNames', () => {
7676
/>,
7777
);
7878

79-
expect(wrapper.find('.rc-cascader-selection-item').text()).toEqual('Bamboo / Little / Toy');
79+
expect(wrapper.find('.rc-cascader-content-value').text()).toEqual('Bamboo / Little / Toy');
8080

8181
expect(wrapper.find('.rc-cascader-menu')).toHaveLength(3);
8282
expect(wrapper.find('.rc-cascader-menu-item-active')).toHaveLength(3);
@@ -97,7 +97,7 @@ describe('Cascader.FieldNames', () => {
9797
/>,
9898
);
9999

100-
expect(wrapper.find('.rc-cascader-selection-item').text()).toEqual(
100+
expect(wrapper.find('.rc-cascader-content-value').text()).toEqual(
101101
'Bamboo->Little->Toy & bamboo>>little>>toy',
102102
);
103103
});

0 commit comments

Comments
 (0)