diff --git a/lib/Mock/Stores/EventsStore.ts b/lib/Mock/Stores/EventsStore.ts index 356d3bd4b49..e6eb7a8e98d 100644 --- a/lib/Mock/Stores/EventsStore.ts +++ b/lib/Mock/Stores/EventsStore.ts @@ -2,6 +2,7 @@ import { ComponentDidDisappearEvent, ComponentWillAppearEvent, ModalDismissedEvent, + ScreenPoppedEvent, } from '../../src/interfaces/ComponentEvents'; import { ComponentDidAppearEvent, NavigationButtonPressedEvent } from '../../src/index'; import { BottomTabPressedEvent, CommandCompletedEvent } from '../../src/interfaces/Events'; @@ -14,6 +15,8 @@ export const events = { modalDismissed: [(_event: ModalDismissedEvent) => {}], bottomTabPressed: [(_event: BottomTabPressedEvent) => {}], commandCompleted: [(_event: CommandCompletedEvent) => {}], + screenPopped: [(_event: ScreenPoppedEvent) => {}], + invokeComponentWillAppear: (event: ComponentWillAppearEvent) => { events.componentWillAppear && events.componentWillAppear.forEach((listener) => { @@ -56,4 +59,10 @@ export const events = { listener(event); }); }, + invokeScreenPopped: (event: ScreenPoppedEvent) => { + events.screenPopped && + events.screenPopped.forEach((listener) => { + listener(event); + }); + }, }; diff --git a/lib/Mock/mocks/NativeCommandsSender.tsx b/lib/Mock/mocks/NativeCommandsSender.tsx index d8a6e2db43e..9579332c073 100644 --- a/lib/Mock/mocks/NativeCommandsSender.tsx +++ b/lib/Mock/mocks/NativeCommandsSender.tsx @@ -55,6 +55,9 @@ export class NativeCommandsSender { LayoutStore.getLayoutById(componentId).getStack().children ) as ComponentNode; LayoutStore.pop(componentId); + events.invokeScreenPopped({ + componentId, + }); resolve(poppedChild.nodeId); this.reportCommandCompletion(CommandName.Pop, commandId); }); diff --git a/lib/Mock/mocks/NativeEventsReceiver.ts b/lib/Mock/mocks/NativeEventsReceiver.ts index 0cc0b2250c0..a79c945f0df 100644 --- a/lib/Mock/mocks/NativeEventsReceiver.ts +++ b/lib/Mock/mocks/NativeEventsReceiver.ts @@ -152,8 +152,9 @@ export class NativeEventsReceiver { } public registerScreenPoppedListener( - _callback: (event: ScreenPoppedEvent) => void + callback: (event: ScreenPoppedEvent) => void ): EmitterSubscription { + events.screenPopped.push(callback); return { remove: () => {}, } as EmitterSubscription;