Skip to content

Commit c3c2678

Browse files
authored
refactor: placeholder move into the content (#1167)
1 parent 1772ffa commit c3c2678

File tree

6 files changed

+30
-29
lines changed

6 files changed

+30
-29
lines changed

assets/patch.less

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@
7575
margin-right: 4px;
7676
}
7777

78+
.@{select-prefix}-placeholder {
79+
position: absolute;
80+
left: 0;
81+
top: 50%;
82+
transform: translateY(-50%);
83+
}
84+
7885
.@{select-prefix}-input {
7986
width: calc(var(--select-input-width, 10) * 1px);
8087
min-width: 4px;

jest.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
module.exports = {
22
setupFilesAfterEnv: ['<rootDir>/tests/setup.ts'],
3-
collectCoverage: true,
43
collectCoverageFrom: ['src/**/*.{ts,tsx,js,jsx}'],
54
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"@rc-component/trigger": "^3.0.0",
5454
"@rc-component/util": "^1.3.0",
5555
"clsx": "^2.1.1",
56-
"rc-overflow": "^1.4.0",
56+
"rc-overflow": "^1.5.0",
5757
"rc-virtual-list": "^3.5.2"
5858
},
5959
"devDependencies": {

src/SelectInput/Content/MultipleContent.tsx

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -183,27 +183,24 @@ export default React.forwardRef<HTMLInputElement, SharedContentProps>(function M
183183

184184
// ======================= Render =======================
185185
return (
186-
<>
187-
<Placeholder show={!searchValue || !triggerOpen} />
188-
<Overflow
189-
prefixCls={`${prefixCls}-content`}
190-
data={displayValues}
191-
renderItem={renderItem}
192-
renderRest={renderRest}
193-
// suffix={inputNode}
194-
suffix={
195-
<Input
196-
ref={ref}
197-
disabled={disabled}
198-
readOnly={!inputEditable}
199-
{...inputProps}
200-
value={inputValue || ''}
201-
syncWidth
202-
/>
203-
}
204-
itemKey={itemKey}
205-
maxCount={maxTagCount}
206-
/>
207-
</>
186+
<Overflow
187+
prefixCls={`${prefixCls}-content`}
188+
prefix={!displayValues.length && (!searchValue || !triggerOpen) ? <Placeholder /> : null}
189+
data={displayValues}
190+
renderItem={renderItem}
191+
renderRest={renderRest}
192+
suffix={
193+
<Input
194+
ref={ref}
195+
disabled={disabled}
196+
readOnly={!inputEditable}
197+
{...inputProps}
198+
value={inputValue || ''}
199+
syncWidth
200+
/>
201+
}
202+
itemKey={itemKey}
203+
maxCount={maxTagCount}
204+
/>
208205
);
209206
});

src/SelectInput/Content/Placeholder.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import * as React from 'react';
22
import { useSelectInputContext } from '../context';
33

44
export interface PlaceholderProps {
5-
show: boolean;
5+
show?: boolean;
66
}
77

88
export default function Placeholder(props: PlaceholderProps) {
99
const { prefixCls, placeholder, displayValues } = useSelectInputContext();
10-
const { show } = props;
10+
const { show = true } = props;
1111

1212
if (displayValues.length) {
1313
return null;

tests/Multiple.test.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -438,9 +438,7 @@ describe('Select.Multiple', () => {
438438
visibility: 'visible',
439439
});
440440
toggleOpen(container);
441-
expect(container.querySelector('.rc-select-placeholder')).toHaveStyle({
442-
visibility: 'hidden',
443-
});
441+
expect(container.querySelector('.rc-select-placeholder')).toBeFalsy();
444442
});
445443

446444
it('clear input when popup closed', () => {

0 commit comments

Comments
 (0)