Bluesky app fork with some witchin' additions 馃挮
at linkat-integration 116 lines 4.2 kB view raw
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}