From b90b5216835a7212705fea3542a0258ccd128a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Wed, 19 Jan 2022 10:47:35 +0800 Subject: [PATCH] Revert "fix: Cascader muiltple mode should display full path of selected value (#238)" This reverts commit dde66d246c437b7a500a70378e15bfa2db46f40a. --- package.json | 2 -- src/Cascader.tsx | 1 + src/hooks/useDisplayValues.ts | 10 ++++++---- tests/index.spec.tsx | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 8953b30f..64e7db5b 100644 --- a/package.json +++ b/package.json @@ -47,13 +47,11 @@ "@types/react": "^16.8.19", "@types/react-dom": "^17.0.11", "@types/warning": "^3.0.0", - "@umijs/fabric": "^2.10.1", "cross-env": "^7.0.0", "dumi": "^1.1.12", "enzyme": "^3.3.0", "enzyme-adapter-react-16": "^1.0.2", "enzyme-to-json": "^3.2.1", - "eslint": "^7.1.0", "father": "^2.13.2", "gh-pages": "^3.1.0", "glob": "^7.1.6", diff --git a/src/Cascader.tsx b/src/Cascader.tsx index 5cf335d1..59460104 100644 --- a/src/Cascader.tsx +++ b/src/Cascader.tsx @@ -305,6 +305,7 @@ const Cascader = React.forwardRef((props, re deDuplicatedValues, mergedOptions, mergedFieldNames, + multiple, displayRender, ); diff --git a/src/hooks/useDisplayValues.ts b/src/hooks/useDisplayValues.ts index e56668a4..64ed1ead 100644 --- a/src/hooks/useDisplayValues.ts +++ b/src/hooks/useDisplayValues.ts @@ -12,6 +12,7 @@ export default ( rawValues: SingleValueType[], options: DefaultOptionType[], fieldNames: InternalFieldNames, + multiple: boolean, displayRender: CascaderProps['displayRender'], ) => { return React.useMemo(() => { @@ -19,14 +20,15 @@ export default ( displayRender || // Default displayRender (labels => { + const mergedLabels = multiple ? labels.slice(-1) : labels; const SPLIT = ' / '; - if (labels.every(label => ['string', 'number'].includes(typeof label))) { - return labels.join(SPLIT); + if (mergedLabels.every(label => ['string', 'number'].includes(typeof label))) { + return mergedLabels.join(SPLIT); } // If exist non-string value, use ReactNode instead - return labels.reduce((list, label, index) => { + return mergedLabels.reduce((list, label, index) => { const keyedLabel = React.isValidElement(label) ? React.cloneElement(label, { key: index }) : label; @@ -53,5 +55,5 @@ export default ( valueCells, }; }); - }, [rawValues, options, fieldNames, displayRender]); + }, [rawValues, options, fieldNames, displayRender, multiple]); }; diff --git a/tests/index.spec.tsx b/tests/index.spec.tsx index 8352f4de..74298da3 100644 --- a/tests/index.spec.tsx +++ b/tests/index.spec.tsx @@ -764,7 +764,7 @@ describe('Cascader.Basic', () => { ); expect(wrapper.find('.rc-cascader-selection-item-content').first().text()).toEqual('Parent'); - expect(wrapper.find('.rc-cascader-selection-item-content').last().text()).toEqual('Normal / Child'); + expect(wrapper.find('.rc-cascader-selection-item-content').last().text()).toEqual('Child'); }); }); });