An Expo Config Plugin for by Expo Solana wallets to inject a bottom sheet themed Android Activity to handle Mobile Wallet Adapter requests. Wallets can designate a React component to render as UI for the injected activity.
npm install <TODO: Publish npm package>
Configure the plugin in your app.json.
Optionally, specify a walletUriBase
to register your wallet's custom mwa scheme to handle intents.
{
"expo": {
"name": "myApp",
"plugins": [
[
"mwa-bottom-sheet-expo-plugin",
{
"walletUriBase": "my-custom-mwa-scheme"
}
]
]
}
}
The config plugin injects an Android activity into your expo build, but you'll need to register the injected Activity on the Javascript side.
Copy over node_modules/expo/AppEntry.js
to a new file (CustomAppEntry.js
) and just add the AppRegistry.registerComponent
call.
// CustomAppEntry.js
import registerRootComponent from "expo/build/launch/registerRootComponent";
import { AppRegistry } from "react-native";
import App from "./App";
import YourMWABottomSheetComponent from "./YourMWABottomSheetComponent";
// Add this to associate the activity -> React Component
AppRegistry.registerComponent(
"MobileWalletAdapterEntrypoint",
() => YourMWABottomSheetComponent
);
registerRootComponent(App);
In package.json
, redirect "main"
to point at the custom entrypoint file.
{
"name": "your-expo-app",
"main": "./CustomAppEntry.js",
}
Now the config plugin is configured and will be included in the expo prebuild step of eas build
!