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+
30 lines
1.1 KiB
TypeScript
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}` : ''}`
|
|
}
|