rn-fade-wrapper
Version:
🔥 Fade gradient wrapper for React Native scrollable views and overlays on iOS and Android.
89 lines (88 loc) • 3.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
FadeWrapperOrientation: true,
FadeWrapper: true
};
exports.FadeWrapperOrientation = exports.FadeWrapper = void 0;
var _react = require("react");
var _RnFadeWrapperViewNativeComponent = _interopRequireWildcard(require("./RnFadeWrapperViewNativeComponent"));
Object.keys(_RnFadeWrapperViewNativeComponent).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _RnFadeWrapperViewNativeComponent[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _RnFadeWrapperViewNativeComponent[key];
}
});
});
var _jsxRuntime = require("react/jsx-runtime");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
let FadeWrapperOrientation = exports.FadeWrapperOrientation = /*#__PURE__*/function (FadeWrapperOrientation) {
FadeWrapperOrientation["HORIZONTAL"] = "horizontal";
FadeWrapperOrientation["VERTICAL"] = "vertical";
return FadeWrapperOrientation;
}({});
const defaultStyle = {
zIndex: 2
};
const makePreset = (top, right, bottom, left) => {
return {
sizeTop: top,
sizeRight: right,
sizeBottom: bottom,
sizeLeft: left
};
};
const FadeWrapper = ({
children,
color,
size = 20,
sizes,
orientation = FadeWrapperOrientation.VERTICAL,
inward = false,
style
}) => {
const preparedSizes = () => {
if (sizes) {
return makePreset(sizes.top ?? 0, sizes.right ?? 0, sizes.bottom ?? 0, sizes.left ?? 0);
}
if (orientation) {
const sizedByOrientation = {
horizontal: makePreset(0, size, 0, size),
vertical: makePreset(size, 0, size, 0)
};
return sizedByOrientation[orientation];
}
return makePreset(size, 0, size, 0);
};
const withInward = (0, _react.useMemo)(() => {
const __sizes = preparedSizes();
if (inward) {
return {
sizeTop: -__sizes.sizeTop,
sizeRight: -__sizes.sizeRight,
sizeBottom: -__sizes.sizeBottom,
sizeLeft: -__sizes.sizeLeft
};
}
return __sizes;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [size, orientation, sizes, inward]);
const __style = (0, _react.useMemo)(() => {
return [defaultStyle, style];
}, [style]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_RnFadeWrapperViewNativeComponent.default, {
...withInward,
color: color,
style: __style,
children: children
});
};
exports.FadeWrapper = FadeWrapper;
//# sourceMappingURL=index.js.map