Skip to content

Commit 279cfec

Browse files
andrestonefacebook-github-bot
authored andcommitted
feat: make RCTBlobManager TurboModule-compatible (#35047)
Summary: Currently, RCTBlobManager (the native module for Blob support) cannot be loaded on iOS when the new architecture is enabled. ## Changelog [General] [Added] - `BlobModule` to `RCTCoreModulesClassProvider` Pull Request resolved: #35047 Test Plan: The snippet below can be used to test Blob support with the new architecture enabled. ``` // App.tsx import { useEffect } from 'react'; import { View } from 'react-native'; function uriToBlob(uri: any) { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.responseType = 'blob'; xhr.onload = () => { const blob = xhr.response; resolve(blob); }; xhr.onerror = err => { reject(err); }; xhr.open('GET', uri); xhr.send(); }); } export default function App() { useEffect(() => { uriToBlob('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'); }); return <View />; } ``` Related issue: #35042 Reviewed By: NickGerleman Differential Revision: D40716048 Pulled By: cipolleschi fbshipit-source-id: 17643d230fa7ea83baee363d137d51f87818baa8
1 parent 92d41c5 commit 279cfec

File tree

2 files changed

+2
-0
lines changed

2 files changed

+2
-0
lines changed

React/CoreModules/CoreModulesPlugins.h

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Class RCTWebSocketModuleCls(void) __attribute__((used));
5454
Class RCTDevLoadingViewCls(void) __attribute__((used));
5555
Class RCTDevSplitBundleLoaderCls(void) __attribute__((used));
5656
Class RCTEventDispatcherCls(void) __attribute__((used));
57+
Class RCTBlobManagerCls(void) __attribute__((used));
5758

5859
#ifdef __cplusplus
5960
}

React/CoreModules/CoreModulesPlugins.mm

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Class RCTCoreModulesClassProvider(const char *name) {
3737
{"PerfMonitor", RCTPerfMonitorCls},
3838
{"DevMenu", RCTDevMenuCls},
3939
{"DevSettings", RCTDevSettingsCls},
40+
{"BlobModule", RCTBlobManagerCls},
4041
{"RedBox", RCTRedBoxCls},
4142
{"LogBox", RCTLogBoxCls},
4243
{"WebSocketExecutor", RCTWebSocketExecutorCls},

0 commit comments

Comments
 (0)