@livelike/react-native
Version:
LiveLike React Native package
45 lines • 1.59 kB
JavaScript
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); }
import React from 'react';
import { Platform, StyleSheet, View } from 'react-native';
import { DEFAULT_BANNER_AUTO_HIDE_TIMEOUT, useAutoHideBannerEffect, useBanner, useStyles } from '../../hooks';
import { LLChatBannerItem } from './LLChatBannerItem';
export function LLChatBanner(_ref) {
let {
styles: stylesProp,
bannerAutoHideTimeout = DEFAULT_BANNER_AUTO_HIDE_TIMEOUT,
BannerItemComponent = LLChatBannerItem
} = _ref;
const bannerStyles = useStyles({
componentStylesFn: getAppBannerStyles,
stylesProp
});
const {
banners
} = useBanner();
useAutoHideBannerEffect({
bannerAutoHideTimeout
});
return /*#__PURE__*/React.createElement(View, {
style: bannerStyles.bannerContainer
}, banners.map(item => /*#__PURE__*/React.createElement(BannerItemComponent, _extends({
key: item.id
}, item))));
}
const getAppBannerStyles = _ref2 => {
let {
theme
} = _ref2;
return StyleSheet.create({
bannerContainer: {
display: 'flex',
flexDirection: 'column',
position: 'absolute',
top: Platform.OS === 'ios' ? 50 : 70,
left: 12,
backgroundColor: 'transparent',
marginBottom: 15,
zIndex: 1
}
});
};
//# sourceMappingURL=LLChatBanner.js.map