#include #include #define JSI_HOST_FUNCTION(NAME) \ jsi::Value NAME( \ jsi::Runtime &rt, \ const jsi::Value &thisValue, \ const jsi::Value *arguments, \ size_t count \ ) using namespace facebook; namespace RNScreens { class RNScreensTurboModule : public jsi::HostObject { static std::function(int)> startTransition_; static std::function updateTransition_; static std::function finishTransition_; static std::function disableSwipeBackForTopScreen_; public: static const char MODULE_NAME[]; RNScreensTurboModule( std::function(int)> startTransition, std::function updateTransition, std::function finishTransition, std::function disableSwipeBackForTopScreen ); ~RNScreensTurboModule() override; jsi::Value get(jsi::Runtime& rt, const jsi::PropNameID& name) override; void set(jsi::Runtime&, const jsi::PropNameID&, const jsi::Value&) override; std::vector getPropertyNames(jsi::Runtime& rt) override; static JSI_HOST_FUNCTION(startTransition); static JSI_HOST_FUNCTION(updateTransition); static JSI_HOST_FUNCTION(finishTransition); static JSI_HOST_FUNCTION(disableSwipeBackForTopScreen); }; }