Skip to content

Commit 8fd2f12

Browse files
RSNarafacebook-github-bot
authored andcommitted
BridgelessUIManager: Finish focus, blur (#42210)
Summary: Pull Request resolved: #42210 Implement Focus and blur, by using commands. Changelog: [Internal] Reviewed By: dmytrorykun Differential Revision: D52383997 fbshipit-source-id: ca3c20d77b17147b592cbf3c48772b857a2e2c55
1 parent 7effa25 commit 8fd2f12

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

packages/react-native/Libraries/ReactNative/BridgelessUIManager.js

+30-2
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,38 @@ const UIManagerJSPlatformAPIs = Platform.select({
217217
return {};
218218
},
219219
focus: (reactTag: ?number): void => {
220-
raiseSoftError('focus');
220+
if (reactTag == null) {
221+
console.error(
222+
`focus() noop: Cannot be called with ${String(reactTag)} reactTag`,
223+
);
224+
return;
225+
}
226+
227+
const FabricUIManager = nullthrows(getFabricUIManager());
228+
const shadowNode =
229+
FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);
230+
if (!shadowNode) {
231+
console.error(`focus() noop: Cannot find view with tag #${reactTag}`);
232+
return;
233+
}
234+
FabricUIManager.dispatchCommand(shadowNode, 'focus', []);
221235
},
222236
blur: (reactTag: ?number): void => {
223-
raiseSoftError('blur');
237+
if (reactTag == null) {
238+
console.error(
239+
`blur() noop: Cannot be called with ${String(reactTag)} reactTag`,
240+
);
241+
return;
242+
}
243+
244+
const FabricUIManager = nullthrows(getFabricUIManager());
245+
const shadowNode =
246+
FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);
247+
if (!shadowNode) {
248+
console.error(`blur() noop: Cannot find view with tag #${reactTag}`);
249+
return;
250+
}
251+
FabricUIManager.dispatchCommand(shadowNode, 'blur', []);
224252
},
225253
},
226254
});

0 commit comments

Comments
 (0)