react-native-cross-components
Version:
Beautiful React-Native components using RN Paper by Callstack
74 lines • 12.7 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const react_native_1 = require("react-native");
const react_native_paper_1 = require("react-native-paper");
const styles_1 = __importDefault(require("../../styles"));
const lodash_1 = __importDefault(require("lodash"));
/**
* Renders the relevant react-native-paper component based on props
*/
class TextComponent extends react_1.default.Component {
constructor(props) {
super(props);
}
render() {
let label = null;
if (this.props.isHeadline) {
label = react_1.default.createElement(react_native_paper_1.Headline, Object.assign({}, this.props), this.props.children);
}
if (this.props.isSubheading) {
label = react_1.default.createElement(react_native_paper_1.Subheading, Object.assign({}, this.props), this.props.children);
}
if (this.props.isTitle) {
label = react_1.default.createElement(react_native_paper_1.Title, Object.assign({}, this.props), this.props.children);
}
if (this.props.isCaption) {
label = react_1.default.createElement(react_native_paper_1.Caption, Object.assign({}, this.props), this.props.children);
}
if (this.props.isParagraph) {
label = react_1.default.createElement(react_native_paper_1.Paragraph, Object.assign({}, this.props), this.props.children);
}
const url = lodash_1.default.get(this.props, ['onPressUrlTarget']);
if (url && !label)
return (react_1.default.createElement(react_native_paper_1.Text, Object.assign({}, this.props, { onPress: () => react_native_1.Linking.openURL(url.toString()) }), this.props.children));
if (url && label)
return (react_1.default.createElement(react_native_1.TouchableHighlight, { onPress: () => react_native_1.Linking.openURL(url.toString()) }, label));
return label ? (Object.assign({}, label)) : (react_1.default.createElement(react_native_paper_1.Text, Object.assign({}, this.props), this.props.children));
}
}
/**
* Wrapper for {@link https://callstack.github.io/react-native-paper/text.html react-native-paper Text} component
* that displays as a clickable link if {@link ICrossLabelProps.onPressUrlTarget} is supplied.
*
* Link color can also be specified through {@link ICrossLabelProps.linkColor}.
*
* Properties are {@link ICrossLabelProps}
*
* @param param0 {@link ICrossLabelProps}
* @returns {@link View}
*/
class CrossLabel extends react_1.default.Component {
constructor(props) {
super(props);
}
render() {
return (react_1.default.createElement(react_native_1.View, { style: styles_1.default.container },
react_1.default.createElement(TextComponent, Object.assign({}, this.props, { style: [
this.props.onPressUrlTarget ? linkStyle : {},
this.props.style,
this.props.linkColor ? { color: this.props.linkColor } : {},
] }), this.props.children)));
}
}
exports.CrossLabel = CrossLabel;
const linkStyle = {
color: 'blue',
fontWeight: 'bold',
backgroundColor: 'transparent',
};
exports.default = CrossLabel;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJmaWxlIjoiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvbGFiZWxzL0Nyb3NzTGFiZWwudHN4IiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQXlDO0FBQ3pDLCtDQU1zQjtBQUN0QiwyREFPNEI7QUFDNUIsMERBQWtDO0FBQ2xDLG9EQUF1QjtBQXdDdkI7O0dBRUc7QUFDSCxNQUFNLGFBQWMsU0FBUSxlQUFLLENBQUMsU0FBMkI7SUFDM0QsWUFBWSxLQUF1QjtRQUNqQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksS0FBSyxHQUFjLElBQUksQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3pCLEtBQUssR0FBRyw4QkFBQyw2QkFBUSxvQkFBSyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFZLENBQUM7U0FDcEU7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQzNCLEtBQUssR0FBRyw4QkFBQywrQkFBVSxvQkFBSyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFjLENBQUM7U0FDeEU7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ3RCLEtBQUssR0FBRyw4QkFBQywwQkFBSyxvQkFBSyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFTLENBQUM7U0FDOUQ7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3hCLEtBQUssR0FBRyw4QkFBQyw0QkFBTyxvQkFBSyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFXLENBQUM7U0FDbEU7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzFCLEtBQUssR0FBRyw4QkFBQyw4QkFBUyxvQkFBSyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFhLENBQUM7U0FDdEU7UUFFRCxNQUFNLEdBQUcsR0FBRyxnQkFBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRXBELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSztZQUNmLE9BQU8sQ0FDTCw4QkFBQyx5QkFBSSxvQkFBSyxJQUFJLENBQUMsS0FBSyxJQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxzQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsS0FDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2YsQ0FDUixDQUFDO1FBRUosSUFBSSxHQUFHLElBQUksS0FBSztZQUNkLE9BQU8sQ0FDTCw4QkFBQyxpQ0FBa0IsSUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsc0JBQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQy9ELEtBQUssQ0FDYSxDQUN0QixDQUFDO1FBRUosT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLG1CQUNSLEtBQUssRUFDWCxDQUFDLENBQUMsQ0FBQyxDQUNGLDhCQUFDLHlCQUFJLG9CQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQVEsQ0FDbkQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxlQUFLLENBQUMsU0FBMkI7SUFDL0QsWUFBWSxLQUF1QjtRQUNqQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sQ0FDTCw4QkFBQyxtQkFBSSxJQUFDLEtBQUssRUFBRSxnQkFBTSxDQUFDLFNBQVM7WUFDM0IsOEJBQUMsYUFBYSxvQkFDUixJQUFJLENBQUMsS0FBSyxJQUNkLEtBQUssRUFBRTtvQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQzVELEtBRUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ04sQ0FDWCxDQUNSLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFyQkQsZ0NBcUJDO0FBRUQsTUFBTSxTQUFTLEdBQWM7SUFDM0IsS0FBSyxFQUFFLE1BQU07SUFDYixVQUFVLEVBQUUsTUFBTTtJQUNsQixlQUFlLEVBQUUsYUFBYTtDQUMvQixDQUFDO0FBRUYsa0JBQWUsVUFBVSxDQUFDIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvU291cmNlL3JlYWN0LW5hdGl2ZS1jb3JlL3NvdXJjZS9jb21wb25lbnRzL2xhYmVscy9Dcm9zc0xhYmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgVmlldyxcbiAgVGV4dFByb3BzLFxuICBMaW5raW5nLFxuICBUb3VjaGFibGVIaWdobGlnaHQsXG4gIFRleHRTdHlsZSxcbn0gZnJvbSAncmVhY3QtbmF0aXZlJztcbmltcG9ydCB7XG4gIFRleHQsXG4gIEhlYWRsaW5lLFxuICBTdWJoZWFkaW5nLFxuICBUaXRsZSxcbiAgQ2FwdGlvbixcbiAgUGFyYWdyYXBoLFxufSBmcm9tICdyZWFjdC1uYXRpdmUtcGFwZXInO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi9zdHlsZXMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUge0BsaW5rIENyb3NzTGFiZWx9IGNvbXBvbmVudC4gQ29udHJvbCBjb21wb25lbnQgdHlwZSB1c2luZyB7QGxpbmsgaXNUaXRsZX0sIHtAbGluayBpc0NhcHRpb259LCB7QGxpbmsgaXNIZWFkbGluZX0sIHtAbGluayBpc1N1YmhlYWRpbmd9IGFuZCB7QGxpbmsgaXNQYXJhZ3JhcGh9LlxuICpcbiAqIENyZWF0ZSBhbiBVUkwgbGluayB1c2luZyB7QGxpbmsgb25QcmVzc1VybFRhcmdldH0gYW5kIGN1c3RvbWl6ZSBjb2xvciB1c2luZyB7QGxpbmsgbGlua0NvbG9yfS5cbiAqXG4gKiBJbmhlcml0cyByZWFjdC1uYXRpdmUgVGV4dCdzIHtAbGluayBodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9yZWFjdC1uYXRpdmUvZG9jcy90ZXh0Lmh0bWwjcHJvcHMgVGV4dFByb3BzfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDcm9zc0xhYmVsUHJvcHMgZXh0ZW5kcyBUZXh0UHJvcHMge1xuICAvKipcbiAgICogQW4gdXJsIHRvIG9wZW4gd2hlbiB1c2VyIGNsaWNrcyB0aGUgbGFiZWwuIFN0eWxlcyB0aGUgbGFiZWwgYXMgYSBjbGlja2FibGUgXCJsaW5rXCJcbiAgICovXG4gIG9uUHJlc3NVcmxUYXJnZXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb2xvciBmb3IgdGhlIGxpbmsuIERlZmF1bHQgaXMgJ2JsdWUnLiBTZWUgYWxzbyB7QGxpbmsgb25QcmVzc1VybFRhcmdldH1cbiAgICovXG4gIGxpbmtDb2xvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXlzIHRleHQgYXMgYSB7QGxpbmsgaHR0cHM6Ly9jYWxsc3RhY2suZ2l0aHViLmlvL3JlYWN0LW5hdGl2ZS1wYXBlci9oZWFkbGluZS5odG1sIHJlYWN0LW5hdGl2ZSBwYXBlciBIZWFkbGluZSBjb21wb25lbnR9XG4gICAqL1xuICBpc0hlYWRsaW5lPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXlzIHRleHQgYXMgYSB7QGxpbmsgaHR0cHM6Ly9jYWxsc3RhY2suZ2l0aHViLmlvL3JlYWN0LW5hdGl2ZS1wYXBlci90aXRsZS5odG1sIHJlYWN0LW5hdGl2ZSBwYXBlciBUaXRsZSBjb21wb25lbnR9XG4gICAqL1xuICBpc1RpdGxlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXlzIHRleHQgYXMgYSB7QGxpbmsgaHR0cHM6Ly9jYWxsc3RhY2suZ2l0aHViLmlvL3JlYWN0LW5hdGl2ZS1wYXBlci9zdWJoZWFkaW5nLmh0bWwgcmVhY3QtbmF0aXZlIHBhcGVyIFN1YmhlYWRpbmcgY29tcG9uZW50fVxuICAgKi9cbiAgaXNTdWJoZWFkaW5nPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXlzIHRleHQgYXMgYSB7QGxpbmsgaHR0cHM6Ly9jYWxsc3RhY2suZ2l0aHViLmlvL3JlYWN0LW5hdGl2ZS1wYXBlci9wYXJhZ3JhcGguaHRtbCByZWFjdC1uYXRpdmUgcGFwZXIgUGFyYWdyYXBoIGNvbXBvbmVudH1cbiAgICovXG4gIGlzUGFyYWdyYXBoPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERpc3BsYXlzIHRleHQgYXMgYSB7QGxpbmsgaHR0cHM6Ly9jYWxsc3RhY2suZ2l0aHViLmlvL3JlYWN0LW5hdGl2ZS1wYXBlci9jYXB0aW9uLmh0bWwgcmVhY3QtbmF0aXZlIHBhcGVyIENhcHRpb24gY29tcG9uZW50fVxuICAgKi9cbiAgaXNDYXB0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSByZWxldmFudCByZWFjdC1uYXRpdmUtcGFwZXIgY29tcG9uZW50IGJhc2VkIG9uIHByb3BzXG4gKi9cbmNsYXNzIFRleHRDb21wb25lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUNyb3NzTGFiZWxQcm9wcz4ge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogSUNyb3NzTGFiZWxQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgbGFiZWw6IFJlYWN0Tm9kZSA9IG51bGw7XG4gICAgaWYgKHRoaXMucHJvcHMuaXNIZWFkbGluZSkge1xuICAgICAgbGFiZWwgPSA8SGVhZGxpbmUgey4uLnRoaXMucHJvcHN9Pnt0aGlzLnByb3BzLmNoaWxkcmVufTwvSGVhZGxpbmU+O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmlzU3ViaGVhZGluZykge1xuICAgICAgbGFiZWwgPSA8U3ViaGVhZGluZyB7Li4udGhpcy5wcm9wc30+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9TdWJoZWFkaW5nPjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5pc1RpdGxlKSB7XG4gICAgICBsYWJlbCA9IDxUaXRsZSB7Li4udGhpcy5wcm9wc30+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9UaXRsZT47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuaXNDYXB0aW9uKSB7XG4gICAgICBsYWJlbCA9IDxDYXB0aW9uIHsuLi50aGlzLnByb3BzfT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L0NhcHRpb24+O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmlzUGFyYWdyYXBoKSB7XG4gICAgICBsYWJlbCA9IDxQYXJhZ3JhcGggey4uLnRoaXMucHJvcHN9Pnt0aGlzLnByb3BzLmNoaWxkcmVufTwvUGFyYWdyYXBoPjtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSBfLmdldCh0aGlzLnByb3BzLCBbJ29uUHJlc3NVcmxUYXJnZXQnXSk7XG5cbiAgICBpZiAodXJsICYmICFsYWJlbClcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUZXh0IHsuLi50aGlzLnByb3BzfSBvblByZXNzPXsoKSA9PiBMaW5raW5nLm9wZW5VUkwodXJsLnRvU3RyaW5nKCkpfT5cbiAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgKTtcblxuICAgIGlmICh1cmwgJiYgbGFiZWwpXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG91Y2hhYmxlSGlnaGxpZ2h0IG9uUHJlc3M9eygpID0+IExpbmtpbmcub3BlblVSTCh1cmwudG9TdHJpbmcoKSl9PlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9Ub3VjaGFibGVIaWdobGlnaHQ+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIGxhYmVsID8gKFxuICAgICAgeyAuLi5sYWJlbCB9XG4gICAgKSA6IChcbiAgICAgIDxUZXh0IHsuLi50aGlzLnByb3BzfT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L1RleHQ+XG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIHtAbGluayBodHRwczovL2NhbGxzdGFjay5naXRodWIuaW8vcmVhY3QtbmF0aXZlLXBhcGVyL3RleHQuaHRtbCByZWFjdC1uYXRpdmUtcGFwZXIgVGV4dH0gY29tcG9uZW50XG4gKiB0aGF0IGRpc3BsYXlzIGFzIGEgY2xpY2thYmxlIGxpbmsgaWYge0BsaW5rIElDcm9zc0xhYmVsUHJvcHMub25QcmVzc1VybFRhcmdldH0gaXMgc3VwcGxpZWQuXG4gKlxuICogTGluayBjb2xvciBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgdGhyb3VnaCB7QGxpbmsgSUNyb3NzTGFiZWxQcm9wcy5saW5rQ29sb3J9LlxuICpcbiAqIFByb3BlcnRpZXMgYXJlIHtAbGluayBJQ3Jvc3NMYWJlbFByb3BzfVxuICpcbiAqIEBwYXJhbSBwYXJhbTAge0BsaW5rIElDcm9zc0xhYmVsUHJvcHN9XG4gKiBAcmV0dXJucyB7QGxpbmsgVmlld31cbiAqL1xuZXhwb3J0IGNsYXNzIENyb3NzTGFiZWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUNyb3NzTGFiZWxQcm9wcz4ge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogSUNyb3NzTGFiZWxQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAgICA8VGV4dENvbXBvbmVudFxuICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgIHN0eWxlPXtbXG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJlc3NVcmxUYXJnZXQgPyBsaW5rU3R5bGUgOiB7fSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc3R5bGUsXG4gICAgICAgICAgICB0aGlzLnByb3BzLmxpbmtDb2xvciA/IHsgY29sb3I6IHRoaXMucHJvcHMubGlua0NvbG9yIH0gOiB7fSxcbiAgICAgICAgICBdfVxuICAgICAgICA+XG4gICAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICAgIDwvVGV4dENvbXBvbmVudD5cbiAgICAgIDwvVmlldz5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IGxpbmtTdHlsZTogVGV4dFN0eWxlID0ge1xuICBjb2xvcjogJ2JsdWUnLFxuICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50Jyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENyb3NzTGFiZWw7XG4iXSwidmVyc2lvbiI6M30=