revenge-bundle-next/src/plugins/start/settings/definitions/shared.ts
PalmDevs 2e944b0f25
fix: support 341202+
First Android Static Hermes version incoming, with Metro issues.

- scripts/plugins/hermesc: use hermes-compiler
- plugins/settings: get React Native version correctly
- lib/modules/finders/filters: support null ID in DependencyMap for `withDependencies`
- lib/discord: update filters for 341202+
2026-07-29 21:48:18 +07:00

30 lines
1.1 KiB
TypeScript

import { ToastActionCreators } from '@revenge-mod/discord/actions'
import { Clipboard } from '@revenge-mod/externals/react-native-clipboard'
import { ReactNative } from '@revenge-mod/react'
import { lookupGeneratedIconComponent } from '@revenge-mod/utils/discord'
import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const CopyIcon = lookupGeneratedIconComponent('CopyIcon')
export const CopyableSetting = (
item: Omit<SettingsItem, 'type' | 'onClick'>,
description: () => string,
): SettingsItem => ({
...item,
useDescription: item.useDescription ?? (() => description()),
type: 'pressable',
onPress() {
Clipboard.setString(description())
ToastActionCreators.open({
key: 'REVENGE_SETTING_COPIED',
content: 'Copied to clipboard',
IconComponent: CopyIcon,
})
},
})
export const getRNVersion = () => {
const { major, minor, patch, prerelease } =
ReactNative.Platform.constants.reactNativeVersion
return `${major}.${minor}.${patch}${prerelease ? `-${prerelease}` : ''}`
}