forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import React from 'react'
2import {View} from 'react-native'
3
4import {ScrollView} from '#/view/com/util/Views'
5import {atoms as a} from '#/alf'
6import {Button, ButtonText} from '#/components/Button'
7import * as Layout from '#/components/Layout'
8import {Text} from '#/components/Typography'
9import {SharedPrefs} from '../../../modules/expo-bluesky-swiss-army'
10
11export function SharedPreferencesTesterScreen() {
12 const [currentTestOutput, setCurrentTestOutput] = React.useState<string>('')
13
14 return (
15 <Layout.Screen>
16 <ScrollView contentContainerStyle={{backgroundColor: 'red'}}>
17 <View style={[a.flex_1]}>
18 <View>
19 <Text testID="testOutput">{currentTestOutput}</Text>
20 </View>
21 <View style={[a.flex_wrap]}>
22 <Button
23 label="btn"
24 testID="setStringBtn"
25 style={[a.self_center]}
26 variant="solid"
27 color="primary"
28 size="small"
29 onPress={async () => {
30 SharedPrefs.removeValue('testerString')
31 SharedPrefs.setValue('testerString', 'Hello')
32 const str = SharedPrefs.getString('testerString')
33 console.log(JSON.stringify(str))
34 setCurrentTestOutput(`${str}`)
35 }}>
36 <ButtonText>Set String</ButtonText>
37 </Button>
38 <Button
39 label="btn"
40 testID="removeStringBtn"
41 style={[a.self_center]}
42 variant="solid"
43 color="primary"
44 size="small"
45 onPress={async () => {
46 SharedPrefs.removeValue('testerString')
47 const str = SharedPrefs.getString('testerString')
48 setCurrentTestOutput(`${str}`)
49 }}>
50 <ButtonText>Remove String</ButtonText>
51 </Button>
52 <Button
53 label="btn"
54 testID="setBoolBtn"
55 style={[a.self_center]}
56 variant="solid"
57 color="primary"
58 size="small"
59 onPress={async () => {
60 SharedPrefs.removeValue('testerBool')
61 SharedPrefs.setValue('testerBool', true)
62 const bool = SharedPrefs.getBool('testerBool')
63 setCurrentTestOutput(`${bool}`)
64 }}>
65 <ButtonText>Set Bool</ButtonText>
66 </Button>
67 <Button
68 label="btn"
69 testID="setNumberBtn"
70 style={[a.self_center]}
71 variant="solid"
72 color="primary"
73 size="small"
74 onPress={async () => {
75 SharedPrefs.removeValue('testerNumber')
76 SharedPrefs.setValue('testerNumber', 123)
77 const num = SharedPrefs.getNumber('testerNumber')
78 setCurrentTestOutput(`${num}`)
79 }}>
80 <ButtonText>Set Number</ButtonText>
81 </Button>
82 <Button
83 label="btn"
84 testID="addToSetBtn"
85 style={[a.self_center]}
86 variant="solid"
87 color="primary"
88 size="small"
89 onPress={async () => {
90 SharedPrefs.removeFromSet('testerSet', 'Hello!')
91 SharedPrefs.addToSet('testerSet', 'Hello!')
92 const contains = SharedPrefs.setContains('testerSet', 'Hello!')
93 setCurrentTestOutput(`${contains}`)
94 }}>
95 <ButtonText>Add to Set</ButtonText>
96 </Button>
97 <Button
98 label="btn"
99 testID="removeFromSetBtn"
100 style={[a.self_center]}
101 variant="solid"
102 color="primary"
103 size="small"
104 onPress={async () => {
105 SharedPrefs.removeFromSet('testerSet', 'Hello!')
106 const contains = SharedPrefs.setContains('testerSet', 'Hello!')
107 setCurrentTestOutput(`${contains}`)
108 }}>
109 <ButtonText>Remove from Set</ButtonText>
110 </Button>
111 </View>
112 </View>
113 </ScrollView>
114 </Layout.Screen>
115 )
116}