From 2b4584f6aebe8646da1435c1ac7b046d1a98aa45 Mon Sep 17 00:00:00 2001 From: Qiu Xing Date: Thu, 6 Feb 2020 11:39:27 +0800 Subject: [PATCH 1/4] feat: add AdvancedLink component --- .gitignore | 16 +++++++++++++++ package.json | 17 ++++++++++++++++ src/components/AdvancedLink/index.tsx | 26 ++++++++++++++++++++++++ src/components/AdvancedLink/interface.ts | 10 +++++++++ src/components/index.ts | 4 ++++ 5 files changed, 73 insertions(+) create mode 100644 .gitignore create mode 100644 package.json create mode 100644 src/components/AdvancedLink/index.tsx create mode 100644 src/components/AdvancedLink/interface.ts create mode 100644 src/components/index.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a98c47 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +logs/ +output/ +npm-debug.log +yarn-error.log +node_modules/ +package-lock.json +yarn.lock +coverage/ +dist/ +.idea/ +run/ +.DS_Store +*.sw* +*.un~ +.tsbuildinfo +.tsbuildinfo.* diff --git a/package.json b/package.json new file mode 100644 index 0000000..7182c91 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "react-components", + "version": "0.1.0", + "description": "react-components", + "dependencies": { + "@types/react-router-dom": "^5.1.3", + "react": "^16.10.2", + "react-dom": "^16.10.2", + "react-router-dom": "^5.1.2" + }, + "repository": { + "type": "git", + "url": "" + }, + "author": "kuaizhan", + "license": "MIT" +} diff --git a/src/components/AdvancedLink/index.tsx b/src/components/AdvancedLink/index.tsx new file mode 100644 index 0000000..e63a908 --- /dev/null +++ b/src/components/AdvancedLink/index.tsx @@ -0,0 +1,26 @@ +import React from 'react' +import { Link } from 'react-router-dom' +import { AdvancedLinkProp } from './interface' + +const AdvancedLink: React.FC = ({ + href = '', + linkType, + isOpenNewWindow, + children, + className, + style +}) => ( + <> + { + linkType !== 'outer' ? + + {children} + : + + {children} + + } + +) + +export default AdvancedLink diff --git a/src/components/AdvancedLink/interface.ts b/src/components/AdvancedLink/interface.ts new file mode 100644 index 0000000..45be757 --- /dev/null +++ b/src/components/AdvancedLink/interface.ts @@ -0,0 +1,10 @@ +export interface AdvancedLinkProp { + title?: string, + icon?: string, + href?: string, + path?: string, + linkType?: 'inner' | 'outer', + isOpenNewWindow?: boolean, + className?: string, + style?: React.CSSProperties +} diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 0000000..fa54fd8 --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,4 @@ +import AdvancedLink from './AdvancedLink' +export { + AdvancedLink +} \ No newline at end of file From 053da37bec1387343f9ae70ce4f0526700d80eb3 Mon Sep 17 00:00:00 2001 From: Qiu Xing Date: Thu, 6 Feb 2020 11:55:48 +0800 Subject: [PATCH 2/4] fix: AdvancedLink extends LinkProps --- src/components/AdvancedLink/interface.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/AdvancedLink/interface.ts b/src/components/AdvancedLink/interface.ts index 45be757..f5277f8 100644 --- a/src/components/AdvancedLink/interface.ts +++ b/src/components/AdvancedLink/interface.ts @@ -1,4 +1,5 @@ -export interface AdvancedLinkProp { +import { LinkProps } from 'react-router-dom/index' +export interface AdvancedLinkProp extends LinkProps { title?: string, icon?: string, href?: string, From 31e3aadd827a0c4ab7d3ec71d35893b530f38707 Mon Sep 17 00:00:00 2001 From: Qiu Xing Date: Thu, 6 Feb 2020 16:30:05 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20add=20Link=20original=20props?= =?UTF-8?q?=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AdvancedLink/index.tsx | 10 +++++++--- src/components/AdvancedLink/interface.ts | 3 --- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/components/AdvancedLink/index.tsx b/src/components/AdvancedLink/index.tsx index e63a908..fda728a 100644 --- a/src/components/AdvancedLink/index.tsx +++ b/src/components/AdvancedLink/index.tsx @@ -8,15 +8,19 @@ const AdvancedLink: React.FC = ({ isOpenNewWindow, children, className, - style + style, + replace, + innerRef, + title, + target }) => ( <> { linkType !== 'outer' ? - + {children} : - + {children} } diff --git a/src/components/AdvancedLink/interface.ts b/src/components/AdvancedLink/interface.ts index f5277f8..20ab7ee 100644 --- a/src/components/AdvancedLink/interface.ts +++ b/src/components/AdvancedLink/interface.ts @@ -1,11 +1,8 @@ import { LinkProps } from 'react-router-dom/index' export interface AdvancedLinkProp extends LinkProps { - title?: string, icon?: string, href?: string, path?: string, linkType?: 'inner' | 'outer', isOpenNewWindow?: boolean, - className?: string, - style?: React.CSSProperties } From bd149c4d41f0e770aef0ca3d45efb0a7a079b615 Mon Sep 17 00:00:00 2001 From: Qiu Xing Date: Thu, 6 Feb 2020 16:32:33 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=8B=E4=BB=A3=E7=A0=81=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AdvancedLink/index.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/components/AdvancedLink/index.tsx b/src/components/AdvancedLink/index.tsx index fda728a..2ce3b43 100644 --- a/src/components/AdvancedLink/index.tsx +++ b/src/components/AdvancedLink/index.tsx @@ -17,10 +17,24 @@ const AdvancedLink: React.FC = ({ <> { linkType !== 'outer' ? - + {children} : - + {children} }