@trycourier/courier-react-native
Version:
Inbox, Push Notifications, and Preferences for React Native
45 lines • 1.82 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 = undefined;
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