Revenge/src/ui/settings/components/Settings.tsx
2022-10-19 07:58:32 +01:00

48 lines
No EOL
1.5 KiB
TypeScript

import { React, ReactNative as RN } from "@metro/common";
import { Forms } from "@ui/components";
import Version from "./Version";
const { FormRow, FormSection } = Forms;
const hermesProps = window.HermesInternal.getRuntimeProperties();
const rnVer = RN.Platform.constants.reactNativeVersion;
export default function Settings() {
const versions = [
{
label: "Discord",
version: RN.NativeModules.InfoDictionaryManager.Version,
},
{
label: "React",
version: React.version,
},
{
label: "React Native",
version: `${rnVer.major || 0}.${rnVer.minor || 0}.${rnVer.patch || 0}`,
},
{
label: "Hermes",
version: `${hermesProps["OSS Release Version"]} ${hermesProps["Build"]}`,
},
{
label: "Bytecode",
version: hermesProps["Bytecode Version"],
},
];
return (
<>
{/* Why is there still a divider? */}
<FormSection title="Actions" android_noDivider>
<FormRow
label="Reload Discord"
trailing={FormRow.Arrow}
onPress={() => RN.NativeModules.BundleUpdaterManager.reload()}
/>
</FormSection>
<FormSection title="Versions">
{versions.map((v) => <Version label={v.label} version={v.version} /> )}
</FormSection>
</>
)
}