diff --git a/dist/index.js b/dist/index.js index 37adff6..ec15c62 100644 --- a/dist/index.js +++ b/dist/index.js @@ -142,13 +142,15 @@ function (_Component) { _createClass(Hyperlink, [{ key: "render", value: function render() { - var viewProps = _extends({}, this.props); - - delete viewProps.onPress; - delete viewProps.linkDefault; - delete viewProps.onLongPress; - delete viewProps.linkStyle; - return _react["default"].createElement(_reactNative.View, _extends({}, viewProps, { + var wrapperProps = _extends({}, this.props); + + delete wrapperProps.onPress; + delete wrapperProps.linkDefault; + delete wrapperProps.onLongPress; + delete wrapperProps.linkStyle; + delete wrapperProps.wrapperComponent; + var Wrapper = this.props.wrapperComponent || _reactNative.View; + return _react["default"].createElement(Wrapper, _extends({}, wrapperProps, { style: this.props.style }), !this.props.onPress && !this.props.onLongPress && !this.props.linkStyle ? this.props.children : this.parse(this).props.children); } @@ -174,7 +176,8 @@ Hyperlink.propTypes = { linkText: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].func]), onPress: _propTypes["default"].func, onLongPress: _propTypes["default"].func, - injectViewProps: _propTypes["default"].func + injectViewProps: _propTypes["default"].func, + wrapperComponent: _propTypes["default"].elementType }; Hyperlink.defaultProps = { linkify: linkify, diff --git a/index.d.ts b/index.d.ts index 135e70b..e5cc563 100644 --- a/index.d.ts +++ b/index.d.ts @@ -8,6 +8,7 @@ interface Props { linkText?: string | ((text: string) => string); onPress?: (url: string, text: string) => void; onLongPress?: (url: string, text: string) => void; + wrapperComponent?: Component; } declare class HyperLink extends Component {} diff --git a/src/Hyperlink.js b/src/Hyperlink.js index 40812a2..e2f26f6 100644 --- a/src/Hyperlink.js +++ b/src/Hyperlink.js @@ -24,18 +24,20 @@ class Hyperlink extends Component { } render() { - const { ...viewProps } = this.props - delete viewProps.onPress - delete viewProps.linkDefault - delete viewProps.onLongPress - delete viewProps.linkStyle - + const { ...wrapperProps } = this.props + delete wrapperProps.onPress + delete wrapperProps.linkDefault + delete wrapperProps.onLongPress + delete wrapperProps.linkStyle + delete wrapperProps.wrapperComponent + + const Wrapper = this.props.wrapperComponent || View; return ( - + { !this.props.onPress && !this.props.onLongPress && !this.props.linkStyle ? this.props.children : this.parse(this).props.children } - + ) } @@ -136,6 +138,7 @@ Hyperlink.propTypes = { onPress: PropTypes.func, onLongPress: PropTypes.func, injectViewProps: PropTypes.func, + wrapperComponent: PropTypes.elementType, } Hyperlink.defaultProps = { linkify, injectViewProps: i => ({}) }