feat(lib/discord/modules): export main_tabs_v2

This commit is contained in:
PalmDevs 2025-06-09 19:43:27 +07:00
parent 17307bb90a
commit 0d08d0ad6a
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
4 changed files with 60 additions and 4 deletions

View file

@ -27,6 +27,9 @@
"./preinit": {
"default": "./src/preinit.ts"
},
"./modules/main_tabs_v2": {
"default": "./src/modules/main_tabs_v2/index.ts"
},
"./modules/settings": {
"default": "./src/modules/settings/index.ts"
},

View file

@ -26,12 +26,20 @@ defineLazyProperty(discord, 'native', function () {
})
defineLazyProperty(discord, 'modules', function () {
return {
settings: {
const modules = {} as PluginApiDiscord.Modules
defineLazyProperty(modules, 'mainTabsV2', function () {
return require('@revenge-mod/discord/modules/main_tabs_v2')
})
defineLazyProperty(modules, 'settings', function () {
return {
...require('@revenge-mod/discord/modules/settings'),
renderer: require('@revenge-mod/discord/modules/settings/renderer'),
},
}
}
})
return modules
})
_initExts.push((api, { manifest: { id } }) =>

View file

@ -0,0 +1,44 @@
import {
byDependencies,
byProps,
every,
looseDeps,
preferExports,
relativeDep,
} from '@revenge-mod/modules/finders/filters'
import { lookupModule } from '@revenge-mod/modules/finders/lookup'
import { proxify } from '@revenge-mod/utils/proxy'
import type { NavigationContainerRef } from '@react-navigation/core'
export interface RootNavigationRef {
getRootNavigationRef<
T extends object = Record<string, unknown>,
>(): NavigationContainerRef<T>
}
export let RootNavigationRef: RootNavigationRef = proxify(
() => {
const [module] = lookupModule(
preferExports(
byProps<RootNavigationRef>('getRootNavigationRef'),
every(
byDependencies([
looseDeps([
[],
looseDeps([relativeDep(1), relativeDep(2)]),
]),
2,
]),
),
),
{
includeUninitialized: true,
},
)
if (module) return (RootNavigationRef = module)
},
{
hint: 'object',
},
)!

View file

@ -15,6 +15,7 @@ export namespace PluginApiDiscord {
export type Native = typeof import('@revenge-mod/discord/native')
export interface Modules {
mainTabsV2: typeof import('@revenge-mod/discord/modules/main_tabs_v2')
settings: typeof import('@revenge-mod/discord/modules/settings') & {
renderer: typeof import('@revenge-mod/discord/modules/settings/renderer')
}