UNPKG

sonner-native

Version:

An opinionated toast component for React Native. A port of @emilkowalski's sonner.

65 lines (64 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Positioner = void 0; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); var _reactNativeSafeAreaContext = require("react-native-safe-area-context"); var _context = require("./context.js"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const Positioner = ({ children, position, style, ...props }) => { const { offset } = (0, _context.useToastContext)(); const { top, bottom } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)(); const containerStyle = _react.default.useMemo(() => { if (position === 'center') { return { position: 'absolute', top: 0, bottom: 0, left: 0, right: 0, justifyContent: 'center', alignItems: 'center' }; } return { position: 'absolute', width: '100%', alignItems: 'center' }; }, [position]); const insetValues = _react.default.useMemo(() => { if (position === 'bottom-center') { return { bottom: offset || bottom || 40 }; } if (position === 'top-center') { return { top: offset || top || 40 }; } return {}; }, [position, bottom, top, offset]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, { style: [containerStyle, insetValues, style], pointerEvents: "box-none", ...props, children: children }); }; exports.Positioner = Positioner; //# sourceMappingURL=positioner.js.map