feat(lib/externals): add react-native-safe-area-context

This commit is contained in:
PalmDevs 2026-04-01 13:32:19 +07:00
parent 6550e03465
commit 06a574c77e
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
6 changed files with 57 additions and 0 deletions

View file

@ -28,6 +28,7 @@
"@parcel/watcher": "^2.5.6",
"@react-native-clipboard/clipboard": "^1.16.3",
"@types/bun": "^1.3.9",
"react-native-safe-area-context": "^5.7.0",
"rolldown-plugin-dts": "^0.22.1",
},
"peerDependencies": {

View file

@ -9,6 +9,9 @@
"./react-native-clipboard": {
"default": "./src/react-native-clipboard.ts"
},
"./react-native-safe-area-context": {
"default": "./src/react-native-safe-area-context.ts"
},
"./react-navigation": {
"default": "./src/react-navigation.ts"
},

View file

@ -0,0 +1,47 @@
import { lookupModule } from '@revenge-mod/modules/finders'
import {
withDependencies,
withProps,
} from '@revenge-mod/modules/finders/filters'
import {
ReactJSXRuntimeModuleId,
ReactModuleId,
ReactNativeModuleId,
} from '@revenge-mod/react'
import { proxify } from '@revenge-mod/utils/proxy'
const { relative, loose } = withDependencies
export let ReactNativeSafeAreaContext: typeof import('react-native-safe-area-context') =
proxify(
() => {
const [module] = lookupModule(
withProps<typeof ReactNativeSafeAreaContext>(
'SafeAreaProvider',
).and(
withDependencies(
loose([
relative.withDependencies(
[
null,
null,
ReactModuleId,
ReactNativeModuleId,
ReactJSXRuntimeModuleId,
relative.withDependencies([relative(1)], 1),
],
1,
),
]),
),
),
)
if (module) {
return (ReactNativeSafeAreaContext = module)
}
},
{
hint: {},
},
)!

View file

@ -1,6 +1,7 @@
export interface PluginApiExternals {
Browserify: typeof import('@revenge-mod/externals/browserify')
ReactNativeClipboard: typeof import('@revenge-mod/externals/react-native-clipboard')
ReactNativeSafeAreaContext: typeof import('@revenge-mod/externals/react-native-safe-area-context')
ReactNavigation: typeof import('@revenge-mod/externals/react-navigation')
Shopify: typeof import('@revenge-mod/externals/shopify')
}

View file

@ -7,6 +7,7 @@
"@parcel/watcher": "^2.5.6",
"@react-native-clipboard/clipboard": "^1.16.3",
"@types/bun": "^1.3.9",
"react-native-safe-area-context": "^5.7.0",
"rolldown-plugin-dts": "^0.22.1"
},
"peerDependencies": {

View file

@ -1,5 +1,6 @@
import defer * as Browserify from '@revenge-mod/externals/browserify'
import defer * as ReactNativeClipboard from '@revenge-mod/externals/react-native-clipboard'
import defer * as ReactNativeSafeAreaContext from '@revenge-mod/externals/react-native-safe-area-context'
import defer * as ReactNavigation from '@revenge-mod/externals/react-navigation'
import defer * as Shopify from '@revenge-mod/externals/shopify'
import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
@ -26,6 +27,9 @@ registerPlugin(
ReactNativeClipboard: () => {
return ReactNativeClipboard
},
ReactNativeSafeAreaContext: () => {
return ReactNativeSafeAreaContext
},
ReactNavigation: () => {
return ReactNavigation
},