From e5451a95cb07df9146bf1b0db9501767a064e3d0 Mon Sep 17 00:00:00 2001 From: MadCcc <1075746765@qq.com> Date: Thu, 13 Jan 2022 13:34:34 +0800 Subject: [PATCH] feat: dropdown support arrow pointing at center (#33658) * feat: add pointAtCenter prop for dropdown * feat: dropdown support arrow pointing at center * chore: code clean * chore: use getPlacements in tooltip * feat: dropdown support 'top' and 'bottom' * chore: update snapshot * chore: move placements to util folder * feat: make 'topCenter' and 'bottomCenter' in Dropdown deprecated * test: update snapshot * test: add test for topCenter and bottomCenter --- components/{tooltip => _util}/placements.tsx | 3 +- components/breadcrumb/BreadcrumbItem.tsx | 6 +- .../__snapshots__/demo-extend.test.ts.snap | 1292 ++++++++++++++++- .../__tests__/__snapshots__/demo.test.js.snap | 62 +- components/dropdown/__tests__/index.test.js | 20 + components/dropdown/demo/arrow-center.md | 75 + components/dropdown/demo/arrow.md | 8 +- components/dropdown/demo/dropdown-button.md | 2 +- components/dropdown/demo/placement.md | 8 +- components/dropdown/dropdown.tsx | 33 +- components/dropdown/index.en-US.md | 6 +- components/dropdown/index.zh-CN.md | 6 +- components/dropdown/style/index.less | 24 +- components/tooltip/index.tsx | 14 +- package.json | 2 +- site/theme/template/Content/MainContent.jsx | 2 +- 16 files changed, 1510 insertions(+), 53 deletions(-) rename components/{tooltip => _util}/placements.tsx (97%) create mode 100644 components/dropdown/demo/arrow-center.md diff --git a/components/tooltip/placements.tsx b/components/_util/placements.tsx similarity index 97% rename from components/tooltip/placements.tsx rename to components/_util/placements.tsx index 3fc9152268..eb4dead8a8 100644 --- a/components/tooltip/placements.tsx +++ b/components/_util/placements.tsx @@ -42,6 +42,7 @@ export default function getPlacements(config: PlacementsConfig) { horizontalArrowShift = 16, verticalArrowShift = 8, autoAdjustOverflow, + arrowPointAtCenter, } = config; const placementMap: BuildInPlacements = { left: { @@ -94,7 +95,7 @@ export default function getPlacements(config: PlacementsConfig) { }, }; Object.keys(placementMap).forEach(key => { - placementMap[key] = config.arrowPointAtCenter + placementMap[key] = arrowPointAtCenter ? { ...placementMap[key], overflow: getOverflowOptions(autoAdjustOverflow), diff --git a/components/breadcrumb/BreadcrumbItem.tsx b/components/breadcrumb/BreadcrumbItem.tsx index fd29f24a85..860971e847 100644 --- a/components/breadcrumb/BreadcrumbItem.tsx +++ b/components/breadcrumb/BreadcrumbItem.tsx @@ -30,7 +30,7 @@ const BreadcrumbItem: BreadcrumbItemInterface = ({ const renderBreadcrumbNode = (breadcrumbItem: React.ReactNode) => { if (overlay) { return ( - + {breadcrumbItem} @@ -62,9 +62,7 @@ const BreadcrumbItem: BreadcrumbItemInterface = ({ return ( {link} - {separator && ( - {separator} - )} + {separator && {separator}} ); } diff --git a/components/dropdown/__tests__/__snapshots__/demo-extend.test.ts.snap b/components/dropdown/__tests__/__snapshots__/demo-extend.test.ts.snap index 7ba1062ede..7bb2346334 100644 --- a/components/dropdown/__tests__/__snapshots__/demo-extend.test.ts.snap +++ b/components/dropdown/__tests__/__snapshots__/demo-extend.test.ts.snap @@ -220,7 +220,7 @@ Array [ type="button" > - bottomCenter + bottom ,
@@ -860,7 +860,1291 @@ Array [ type="button" > - topCenter + top + + , +
+
+
+ +