@prosperitainova/dumbo-react-native
Version:
Dumbo for React Native Library
82 lines (80 loc) • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Tile = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _colors = require("../../styles/colors");
var _helpers = require("../../helpers");
var _defaultText = require("../../constants/defaultText");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/** Props for Tile component */
/**
* Tile component for rendering a carbon tile
*
* {@link https://github.com/carbon-design-system/carbon-react-native/blob/main/example/src/Views/Tile.tsx | Example code}
*/
class Tile extends _react.default.Component {
get styles() {
return _reactNative.StyleSheet.create({
wrapper: {
minHeight: 64,
minWidth: 128,
backgroundColor: (0, _colors.getColor)('layer01'),
padding: 16
},
scrollContent: {
padding: 16
}
});
}
getStateStyle = state => {
return state.pressed ? {
backgroundColor: (0, _colors.getColor)('layerActive01')
} : undefined;
};
render() {
const {
children,
componentProps,
style,
type,
onPress,
onLongPress,
tileText
} = this.props;
const finalStyles = (0, _helpers.styleReferenceBreaker)(this.styles.wrapper, style);
switch (type) {
case 'scroll':
finalStyles.padding = undefined;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
bounces: false,
style: finalStyles,
contentContainerStyle: this.styles.scrollContent,
...(componentProps || {}),
children: children
});
case 'clickable':
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
onPress: onPress,
onLongPress: onLongPress,
accessibilityRole: "button",
accessibilityLabel: tileText || _defaultText.defaultText.tile,
style: state => (0, _helpers.pressableFeedbackStyle)(state, finalStyles, this.getStateStyle),
...(componentProps || {}),
children: children
});
case 'default':
default:
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
style: finalStyles,
...(componentProps || {}),
children: children
});
}
}
}
exports.Tile = Tile;
//# sourceMappingURL=index.js.map