tooot/src/screens/Tabs/Me/Settings/Dev.tsx

89 lines
2.9 KiB
TypeScript
Raw Normal View History

2021-01-27 00:35:34 +01:00
import Button from '@components/Button'
import { MenuContainer, MenuRow } from '@components/Menu'
2021-05-09 21:59:03 +02:00
import { displayMessage } from '@components/Message'
2021-01-27 00:35:34 +01:00
import { useActionSheet } from '@expo/react-native-action-sheet'
import { useNavigation } from '@react-navigation/native'
import { androidActionSheetStyles } from '@utils/helpers/androidActionSheetStyles'
import { storage } from '@utils/storage'
import { getGlobalStorage, useGlobalStorage } from '@utils/storage/actions'
2021-01-27 00:35:34 +01:00
import { StyleConstants } from '@utils/styles/constants'
2021-02-27 16:33:54 +01:00
import { useTheme } from '@utils/styles/ThemeManager'
2021-01-27 00:35:34 +01:00
import React from 'react'
import { MMKV } from 'react-native-mmkv'
2021-01-27 00:35:34 +01:00
const SettingsDev: React.FC = () => {
const navigation = useNavigation()
2022-12-19 22:36:30 +01:00
const { colors } = useTheme()
2021-01-27 00:35:34 +01:00
const { showActionSheetWithOptions } = useActionSheet()
const [accounts] = useGlobalStorage.object('accounts')
const [account] = useGlobalStorage.string('account.active')
2021-01-27 00:35:34 +01:00
return (
<MenuContainer>
<MenuRow title='Active account' content={account || '-'} onPress={() => {}} />
2021-01-27 00:35:34 +01:00
<MenuRow
title={'Saved local instances'}
content={accounts?.length.toString()}
2021-01-27 00:35:34 +01:00
iconBack='ChevronRight'
onPress={() =>
showActionSheetWithOptions(
{
options: (accounts || []).concat(['Cancel']),
cancelButtonIndex: accounts?.length,
2022-12-19 22:36:30 +01:00
...androidActionSheetStyles(colors)
2021-01-27 00:35:34 +01:00
},
2021-03-10 10:22:53 +01:00
() => {}
2021-01-27 00:35:34 +01:00
)
}
/>
2021-05-09 21:59:03 +02:00
<Button
type='text'
content={'Test flash message'}
style={{
marginHorizontal: StyleConstants.Spacing.Global.PagePadding * 2,
marginBottom: StyleConstants.Spacing.Global.PagePadding
}}
onPress={() => displayMessage({ message: 'This is a testing message' })}
/>
2021-01-27 00:35:34 +01:00
<Button
type='text'
content={'Purge MMKV'}
2021-01-27 00:35:34 +01:00
style={{
marginHorizontal: StyleConstants.Spacing.Global.PagePadding * 2,
2021-05-09 21:59:03 +02:00
marginBottom: StyleConstants.Spacing.Global.PagePadding
2021-01-27 00:35:34 +01:00
}}
destructive
2022-01-16 23:26:05 +01:00
onPress={() => {
const accounts = getGlobalStorage.object('accounts')
storage.account = undefined
if (accounts) {
for (const account of accounts) {
console.log('Clearing', account)
const temp = new MMKV({ id: account })
temp.clearAll()
}
}
console.log('Clearing', 'global')
storage.global.clearAll()
navigation.goBack()
2022-01-16 23:26:05 +01:00
}}
2021-01-27 00:35:34 +01:00
/>
<Button
type='text'
content={'Crash test'}
style={{
marginHorizontal: StyleConstants.Spacing.Global.PagePadding * 2,
marginBottom: StyleConstants.Spacing.Global.PagePadding * 2
}}
destructive
onPress={() => {
throw new Error('Testing crash')
}}
/>
</MenuContainer>
)
}
export default SettingsDev