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'
|
2022-12-29 23:00:17 +01:00
|
|
|
import { useNavigation } from '@react-navigation/native'
|
2022-12-28 23:41:36 +01:00
|
|
|
import { androidActionSheetStyles } from '@utils/helpers/androidActionSheetStyles'
|
2023-01-03 23:57:23 +01:00
|
|
|
import { urlMatcher } from '@utils/helpers/urlMatcher'
|
2022-12-28 23:41:36 +01:00
|
|
|
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'
|
2023-01-03 23:57:23 +01:00
|
|
|
import { Alert } from 'react-native'
|
2022-12-28 23:41:36 +01:00
|
|
|
import { MMKV } from 'react-native-mmkv'
|
2021-01-27 00:35:34 +01:00
|
|
|
|
|
|
|
const SettingsDev: React.FC = () => {
|
2022-12-29 23:00:17 +01:00
|
|
|
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()
|
2022-12-28 23:41:36 +01:00
|
|
|
|
|
|
|
const [accounts] = useGlobalStorage.object('accounts')
|
|
|
|
const [account] = useGlobalStorage.string('account.active')
|
2021-01-27 00:35:34 +01:00
|
|
|
|
|
|
|
return (
|
|
|
|
<MenuContainer>
|
2022-12-28 23:41:36 +01:00
|
|
|
<MenuRow title='Active account' content={account || '-'} onPress={() => {}} />
|
2021-01-27 00:35:34 +01:00
|
|
|
<MenuRow
|
|
|
|
title={'Saved local instances'}
|
2022-12-28 23:41:36 +01:00
|
|
|
content={accounts?.length.toString()}
|
2023-01-25 00:15:46 +01:00
|
|
|
iconBack='chevron-right'
|
2021-01-27 00:35:34 +01:00
|
|
|
onPress={() =>
|
|
|
|
showActionSheetWithOptions(
|
|
|
|
{
|
2022-12-28 23:41:36 +01:00
|
|
|
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
|
|
|
)
|
|
|
|
}
|
|
|
|
/>
|
2023-01-03 23:57:23 +01:00
|
|
|
<Button
|
|
|
|
type='text'
|
|
|
|
content={'Test link matcher'}
|
|
|
|
style={{
|
|
|
|
marginHorizontal: StyleConstants.Spacing.Global.PagePadding * 2,
|
|
|
|
marginBottom: StyleConstants.Spacing.Global.PagePadding
|
|
|
|
}}
|
|
|
|
onPress={() =>
|
|
|
|
Alert.prompt('URL', undefined, text => console.log(urlMatcher(text)), 'plain-text')
|
|
|
|
}
|
|
|
|
/>
|
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'
|
2022-12-28 23:41:36 +01:00
|
|
|
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={() => {
|
2022-12-28 23:41:36 +01:00
|
|
|
const accounts = getGlobalStorage.object('accounts')
|
2022-12-29 23:00:17 +01:00
|
|
|
storage.account = undefined
|
|
|
|
if (accounts) {
|
|
|
|
for (const account of accounts) {
|
|
|
|
console.log('Clearing', account)
|
|
|
|
const temp = new MMKV({ id: account })
|
|
|
|
temp.clearAll()
|
|
|
|
}
|
2022-12-28 23:41:36 +01:00
|
|
|
}
|
|
|
|
console.log('Clearing', 'global')
|
|
|
|
storage.global.clearAll()
|
2022-12-29 23:00:17 +01:00
|
|
|
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
|