@kirz/react-native-toolkit
Version:
Toolkit to speed up React Native development
94 lines (93 loc) • 2.58 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.renderGradient = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactNativeLinearGradient = _interopRequireDefault(require("react-native-linear-gradient"));
var _RadialGradient = require("../components/RadialGradient");
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 renderGradient = gradients => {
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, gradients.map((gradient, gradientIdx) => {
if (typeof gradient === 'function') {
const Component = gradient;
return /*#__PURE__*/_react.default.createElement(Component, {
key: gradientIdx
});
}
if ('type' in gradient && gradient.type === 'radial') {
return /*#__PURE__*/_react.default.createElement(_RadialGradient.RadialGradient, _extends({
key: gradientIdx
}, gradient, {
style: {
position: 'absolute',
left: 0,
top: 0
}
}));
}
const {
direction,
...props
} = gradient;
return /*#__PURE__*/_react.default.createElement(_reactNativeLinearGradient.default, _extends({
key: gradientIdx
}, props, {
style: [{
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0
}, gradient.style]
}, direction === 'left-right' ? {
start: {
x: 0,
y: 0.5
},
end: {
x: 1,
y: 0.5
}
} : direction === 'right-left' ? {
start: {
x: 1,
y: 0.5
},
end: {
x: 0,
y: 0.5
}
} : direction === 'up-bottom' ? {
start: {
x: 0.5,
y: 0
},
end: {
x: 0.5,
y: 1
}
} : direction === 'bottom-up' ? {
start: {
x: 0.5,
y: 1
},
end: {
x: 0.5,
y: 0
}
} : {
start: props.start ?? {
x: 0,
y: 0.5
},
end: props.end ?? {
x: 1,
y: 0.5
}
}));
}));
};
exports.renderGradient = renderGradient;
//# sourceMappingURL=renderGradient.js.map