Skip to content

Commit 240b2a4

Browse files
authored
fix(android): add RootNodeKind trait for nested sheet touch handling (#375)
Fixes pressables not working in nested sheets on Android real devices. The RootNodeKind trait ensures each sheet has its own coordinate space for touch event routing.
1 parent 324af75 commit 240b2a4

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ class JSI_EXPORT TrueSheetViewShadowNode final
2222
using ConcreteViewShadowNode::ConcreteViewShadowNode;
2323

2424
public:
25+
static ShadowNodeTraits BaseTraits() {
26+
auto traits = ConcreteViewShadowNode::BaseTraits();
27+
traits.set(ShadowNodeTraits::Trait::RootNodeKind);
28+
return traits;
29+
}
30+
2531
void adjustLayoutWithState();
2632
};
2733

example/shared/src/screens/MapScreen.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,11 @@ const MapScreenInner = ({
192192
onPress={() => sheetRef.current?.dismiss()}
193193
/>
194194
</View>
195+
<BasicSheet ref={basicSheet} onNavigateToModal={onNavigateToModal} />
196+
<PromptSheet ref={promptSheet} />
197+
<ScrollViewSheet ref={scrollViewSheet} />
198+
<GestureSheet ref={gestureSheet} />
195199
</ReanimatedTrueSheet>
196-
<BasicSheet ref={basicSheet} onNavigateToModal={onNavigateToModal} />
197-
<PromptSheet ref={promptSheet} />
198-
<ScrollViewSheet ref={scrollViewSheet} />
199-
<GestureSheet ref={gestureSheet} />
200200
<FlatListSheet ref={flatListSheet} />
201201
</View>
202202
);

0 commit comments

Comments
 (0)