@tra-tech/react-native-kitra
Version:
UI kit for React Native
81 lines (80 loc) • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _KitraProvider = require("../../core/KitraProvider");
var _Icon = _interopRequireDefault(require("../Icons/Icon"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
const IconButton = _ref => {
let {
theme,
icon = {
name: 'camera',
size: 20,
type: 'material-community'
},
containerColor = theme === null || theme === void 0 ? void 0 : theme.primary,
style,
iconColor = theme === null || theme === void 0 ? void 0 : theme.error,
focusedColor,
...props
} = _ref;
const statusStyles = {
default: {
container: {
backgroundColor: theme === null || theme === void 0 ? void 0 : theme.primary
},
iconColor: {
color: theme === null || theme === void 0 ? void 0 : theme.white
}
},
focused: {
container: {
backgroundColor: theme === null || theme === void 0 ? void 0 : theme.focused
}
},
disabled: {
container: {
backgroundColor: theme === null || theme === void 0 ? void 0 : theme.disabledLight,
opacity: 0.3
}
}
};
const scale = {
default: {
borderRadius: 50,
width: 30,
height: 30
}
};
return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, _extends({
android_ripple: {
color: statusStyles.focused.container.backgroundColor
},
style: _ref2 => {
let {
pressed
} = _ref2;
return [{
alignItems: 'center',
justifyContent: 'center'
}, _reactNative.Platform.OS === 'ios' ? pressed ? {
backgroundColor: focusedColor
} : {
backgroundColor: containerColor
} : statusStyles.default.container, props.disabled ? statusStyles.disabled.container : null, scale.default, style];
}
}, props), /*#__PURE__*/_react.default.createElement(_Icon.default, {
type: icon.type,
name: icon.name,
size: icon.size,
color: iconColor
}));
};
var _default = (0, _KitraProvider.applyDefaults)(IconButton);
exports.default = _default;
//# sourceMappingURL=IconButton.js.map