import { Dispatch } from 'redux'; const { NativeEventEmitter, NativeModules, Platform } = require('react-native'); interface NotificationData { joplinNotificationId: string; noteId: string; } export default async (dispatch: Dispatch) => { if (Platform.OS === 'android') { const RNAlarmNotification = NativeModules.RNAlarmNotification; const RNAlarmEmitter = new NativeEventEmitter(RNAlarmNotification); const handleNotification = async (notification: NotificationData) => { if (notification) { const noteId = notification.noteId; if (noteId) { dispatch({ type: 'NAV_BACK' }); dispatch({ type: 'SIDE_MENU_CLOSE' }); dispatch({ type: 'NAV_GO', noteId: noteId, routeName: 'Note', }); } } }; // receive notification click events when the app is running RNAlarmEmitter.addListener('OnNotificationOpened', handleNotification); // retrieve notification info if the app was started after the user clicked notification const notification = await RNAlarmNotification.getAlarmInfo(); await handleNotification(notification); } };