Skip to content

Commit 46b2162

Browse files
committed
fix: cannot select when use custom prefixCls #5023
1 parent 4706675 commit 46b2162

File tree

5 files changed

+30
-17
lines changed

5 files changed

+30
-17
lines changed

components/auto-complete/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const AutoComplete = defineComponent({
3434
...autoCompleteProps,
3535
prefixCls: PropTypes.string,
3636
showSearch: PropTypes.looseBool,
37-
transitionName: PropTypes.string.def('ant-slide-up'),
37+
transitionName: PropTypes.string,
3838
choiceTransitionName: PropTypes.string.def('zoom'),
3939
autofocus: PropTypes.looseBool,
4040
backfill: PropTypes.looseBool,

components/cascader/index.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { tuple, withInstall } from '../_util/type';
2828
import type { RenderEmptyHandler } from '../config-provider/renderEmpty';
2929
import { useInjectFormItemContext } from '../form/FormItemContext';
3030
import omit from '../_util/omit';
31+
import { getTransitionName } from '../_util/transition';
3132

3233
export interface CascaderOptionType {
3334
value?: string | number;
@@ -113,7 +114,7 @@ const cascaderProps = {
113114
// onChange?: (value: string[], selectedOptions?: CascaderOptionType[]) => void;
114115
/** 选择后展示的渲染函数 */
115116
displayRender: PropTypes.func,
116-
transitionName: PropTypes.string.def('ant-slide-up'),
117+
transitionName: PropTypes.string,
117118
popupStyle: PropTypes.object.def(() => ({})),
118119
/** 自定义浮层类名 */
119120
popupClassName: PropTypes.string,
@@ -487,6 +488,7 @@ const Cascader = defineComponent({
487488
} = extraAttrs;
488489
const getPrefixCls = this.configProvider.getPrefixCls;
489490
const renderEmpty = this.configProvider.renderEmpty;
491+
const rootPrefixCls = getPrefixCls();
490492
const prefixCls = getPrefixCls('cascader', customizePrefixCls);
491493
const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);
492494

@@ -636,6 +638,7 @@ const Cascader = defineComponent({
636638
...onEvents,
637639
onPopupVisibleChange: this.handlePopupVisibleChange,
638640
onChange: this.handleChange,
641+
transitionName: getTransitionName(rootPrefixCls, 'slide-up', props.transitionName),
639642
};
640643
return <VcCascader {...cascaderProps}>{input}</VcCascader>;
641644
},

components/menu/src/Menu.tsx

+7-7
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export default defineComponent({
7575
],
7676
slots: ['expandIcon', 'overflowedIndicator'],
7777
setup(props, { slots, emit, attrs }) {
78-
const { prefixCls, direction } = useConfigInject('menu', props);
78+
const { prefixCls, direction, getPrefixCls } = useConfigInject('menu', props);
7979
const store = ref<Record<string, StoreMenuInfo>>({});
8080
const siderCollapsed = inject(SiderCollapsedKey, ref(undefined));
8181
const inlineCollapsed = computed(() => {
@@ -293,12 +293,12 @@ export default defineComponent({
293293
[`${prefixCls.value}-${props.theme}`]: true,
294294
};
295295
});
296-
297-
const defaultMotions = {
298-
horizontal: { name: `ant-slide-up` },
296+
const rootPrefixCls = computed(() => getPrefixCls());
297+
const defaultMotions = computed(() => ({
298+
horizontal: { name: `${rootPrefixCls.value}-slide-up` },
299299
inline: collapseMotion,
300-
other: { name: `ant-zoom-big` },
301-
};
300+
other: { name: `${rootPrefixCls.value}-zoom-big` },
301+
}));
302302

303303
useProvideFirstLevel(true);
304304

@@ -381,7 +381,7 @@ export default defineComponent({
381381
inlineCollapsed: mergedInlineCollapsed,
382382
antdMenuTheme: computed(() => props.theme),
383383
siderCollapsed,
384-
defaultMotions: computed(() => (isMounted.value ? defaultMotions : null)),
384+
defaultMotions: computed(() => (isMounted.value ? defaultMotions.value : null)),
385385
motion: computed(() => (isMounted.value ? props.motion : null)),
386386
overflowDisabled: ref(undefined),
387387
onOpenChange: onInternalOpenChange,

components/select/index.tsx

+8-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { tuple } from '../_util/type';
99
import useConfigInject from '../_util/hooks/useConfigInject';
1010
import omit from '../_util/omit';
1111
import { useInjectFormItemContext } from '../form/FormItemContext';
12+
import { getTransitionName } from '../_util/transition';
1213

1314
type RawValue = string | number;
1415

@@ -37,7 +38,7 @@ export const selectProps = () => ({
3738
size: PropTypes.oneOf(tuple('small', 'middle', 'large', 'default')),
3839
mode: PropTypes.oneOf(tuple('multiple', 'tags', 'SECRET_COMBOBOX_MODE_DO_NOT_USE')),
3940
bordered: PropTypes.looseBool.def(true),
40-
transitionName: PropTypes.string.def('ant-slide-up'),
41+
transitionName: PropTypes.string,
4142
choiceTransitionName: PropTypes.string.def(''),
4243
});
4344

@@ -89,7 +90,11 @@ const Select = defineComponent({
8990

9091
return mode;
9192
});
92-
const { prefixCls, direction, configProvider } = useConfigInject('select', props);
93+
const { prefixCls, direction, configProvider, getPrefixCls } = useConfigInject('select', props);
94+
const rootPrefixCls = computed(() => getPrefixCls());
95+
const transitionName = computed(() =>
96+
getTransitionName(rootPrefixCls.value, 'slide-up', props.transitionName),
97+
);
9398
const mergedClassName = computed(() =>
9499
classNames({
95100
[`${prefixCls.value}-lg`]: props.size === 'large',
@@ -189,6 +194,7 @@ const Select = defineComponent({
189194
id={id}
190195
dropdownRender={selectProps.dropdownRender || slots.dropdownRender}
191196
v-slots={{ option: slots.option }}
197+
transitionName={transitionName.value}
192198
>
193199
{slots.default?.()}
194200
</RcSelect>

components/tree-select/index.tsx

+10-6
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ const TreeSelect = defineComponent({
5757
name: 'ATreeSelect',
5858
inheritAttrs: false,
5959
props: initDefaultProps(treeSelectProps, {
60-
transitionName: 'ant-slide-up',
6160
choiceTransitionName: '',
6261
listHeight: 256,
6362
treeIcon: false,
@@ -101,7 +100,15 @@ const TreeSelect = defineComponent({
101100
dropdownMatchSelectWidth,
102101
size,
103102
getPopupContainer,
103+
getPrefixCls,
104104
} = useConfigInject('select', props);
105+
const rootPrefixCls = computed(() => getPrefixCls());
106+
const transitionName = computed(() =>
107+
getTransitionName(rootPrefixCls.value, 'slide-up', props.transitionName),
108+
);
109+
const choiceTransitionName = computed(() =>
110+
getTransitionName(rootPrefixCls.value, '', props.choiceTransitionName),
111+
);
105112
const treePrefixCls = computed(() =>
106113
configProvider.getPrefixCls('select-tree', props.prefixCls),
107114
);
@@ -154,8 +161,6 @@ const TreeSelect = defineComponent({
154161
listItemHeight,
155162
multiple,
156163
treeIcon,
157-
transitionName,
158-
choiceTransitionName,
159164
treeLine,
160165
switcherIcon = slots.switcherIcon?.(),
161166
fieldNames = props.replaceFields,
@@ -197,7 +202,6 @@ const TreeSelect = defineComponent({
197202
},
198203
attrs.class,
199204
);
200-
const rootPrefixCls = configProvider.getPrefixCls();
201205
const otherProps: any = {};
202206
if (props.treeData === undefined && slots.default) {
203207
otherProps.children = flattenChildren(slots.default());
@@ -227,8 +231,7 @@ const TreeSelect = defineComponent({
227231
getPopupContainer={getPopupContainer.value}
228232
treeMotion={null}
229233
dropdownClassName={mergedDropdownClassName.value}
230-
choiceTransitionName={getTransitionName(rootPrefixCls, '', choiceTransitionName)}
231-
transitionName={getTransitionName(rootPrefixCls, 'slide-up', transitionName)}
234+
choiceTransitionName={choiceTransitionName.value}
232235
onChange={handleChange}
233236
onBlur={handleBlur}
234237
onSearch={handleSearch}
@@ -238,6 +241,7 @@ const TreeSelect = defineComponent({
238241
treeCheckable: () => <span class={`${prefixCls.value}-tree-checkbox-inner`} />,
239242
}}
240243
{...otherProps}
244+
transitionName={transitionName.value}
241245
/>
242246
);
243247
};

0 commit comments

Comments
 (0)