Skip to content

Commit

Permalink
fix(th3rdwave#432): allow pointerEvents prop to reach SafeAreaProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
Joel Nuesch committed Jan 4, 2024
1 parent f7e7e20 commit e4deb14
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,29 @@ import com.facebook.react.bridge.ReactContext
import com.facebook.react.module.annotations.ReactModule
import com.facebook.react.uimanager.ThemedReactContext
import com.facebook.react.uimanager.UIManagerHelper
import com.facebook.react.uimanager.ViewGroupManager
import com.facebook.react.viewmanagers.RNCSafeAreaProviderManagerDelegate
import com.facebook.react.viewmanagers.RNCSafeAreaProviderManagerInterface
import com.facebook.react.views.view.ReactViewGroup
import com.facebook.react.views.view.ReactViewManager

@ReactModule(name = SafeAreaProviderManager.REACT_CLASS)
class SafeAreaProviderManager :
ViewGroupManager<SafeAreaProvider>(), RNCSafeAreaProviderManagerInterface<SafeAreaProvider> {
ReactViewManager(), RNCSafeAreaProviderManagerInterface<ReactViewGroup> {
private val mDelegate = RNCSafeAreaProviderManagerDelegate(this)

override fun getDelegate() = mDelegate

override fun getName() = REACT_CLASS

public override fun createViewInstance(context: ThemedReactContext) = SafeAreaProvider(context)
override fun createViewInstance(context: ThemedReactContext) = SafeAreaProvider(context)

override fun getExportedCustomDirectEventTypeConstants() =
mutableMapOf(
InsetsChangeEvent.EVENT_NAME to mutableMapOf("registrationName" to "onInsetsChange"))

override fun addEventEmitters(reactContext: ThemedReactContext, view: SafeAreaProvider) {
override fun addEventEmitters(reactContext: ThemedReactContext, view: ReactViewGroup) {
super.addEventEmitters(reactContext, view)
view.setOnInsetsChangeHandler(::handleOnInsetsChange)
(view as? SafeAreaProvider)?.setOnInsetsChangeHandler(::handleOnInsetsChange)
}

companion object {
Expand Down
6 changes: 6 additions & 0 deletions src/specs/NativeSafeAreaProvider.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type {
DirectEventHandler,
Double,
WithDefault,
} from 'react-native/Libraries/Types/CodegenTypes';
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
import type { ViewProps, HostComponent } from 'react-native';
Expand All @@ -20,8 +21,13 @@ export type Event = Readonly<{
}>;
}>;

// @ts-ignore
export interface NativeProps extends ViewProps {
onInsetsChange?: DirectEventHandler<Event, 'paperInsetsChange'>;
pointerEvents?: WithDefault<
'box-none' | 'none' | 'box-only' | 'auto',
'auto'
>;
}

export default codegenNativeComponent<NativeProps>(
Expand Down

0 comments on commit e4deb14

Please sign in to comment.