@trycourier/courier-react-native
Version:
Inbox, Push Notifications, and Preferences for React Native
45 lines • 1.8 kB
JavaScript
import React, { useEffect } from 'react';
import { DeviceEventEmitter, Platform } from 'react-native';
import { Modules } from '../Modules';
const CourierPreferences = Modules.getNativeComponent('CourierPreferencesView');
export const CourierPreferencesView = props => {
let onScrollPreferencesListener;
useEffect(() => {
return () => {
var _onScrollPreferencesL;
(_onScrollPreferencesL = onScrollPreferencesListener) === null || _onScrollPreferencesL === void 0 ? void 0 : _onScrollPreferencesL.remove();
};
}, []);
useEffect(() => {
var _onScrollPreferencesL2;
(_onScrollPreferencesL2 = onScrollPreferencesListener) === null || _onScrollPreferencesL2 === void 0 ? void 0 : _onScrollPreferencesL2.remove();
if (Platform.OS === 'android' && props.onScrollPreferences) {
onScrollPreferencesListener = DeviceEventEmitter.addListener('courierScrollPreferences', onScrollPreferences);
}
}, [props.onScrollPreferences]);
const onScrollPreferences = event => {
// Parse the native event data
if (props.onScrollPreferences) {
const contentOffset = event.contentOffset;
props.onScrollPreferences(contentOffset.y, contentOffset.x);
}
};
const onPreferenceError = event => {
// Parse the native event data
if (props.onPreferenceError) {
const message = event.error;
props.onPreferenceError(message);
}
};
return /*#__PURE__*/React.createElement(CourierPreferences, {
mode: props.mode,
theme: props.theme ?? {
light: undefined,
dark: undefined
},
onScrollPreferences: event => onScrollPreferences(event.nativeEvent),
onPreferenceError: event => onPreferenceError(event.nativeEvent),
style: props.style
});
};
//# sourceMappingURL=CourierPreferencesView.js.map