Skip to content

Commit 8aa878d

Browse files
committed
example
1 parent e17f0f8 commit 8aa878d

File tree

4 files changed

+35
-109
lines changed

4 files changed

+35
-109
lines changed

examples/example-react-native/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import React from "react";
99
import { StatusBar, useColorScheme, View } from "react-native";
10-
import GetSetClear from "./src/GetSetClear";
10+
import GetSetClear from "./src/BasicCrud";
1111

1212
function App(): React.JSX.Element {
1313
const isDarkMode = useColorScheme() === "dark";

examples/example-react-native/src/GetSetClear.tsx renamed to examples/example-react-native/src/BasicCrud.tsx

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,58 @@
88

99
import { createAsyncStorage } from "@react-native-async-storage/async-storage";
1010
import React, { useState } from "react";
11-
import { Button, StyleSheet, Text, View } from "react-native";
11+
import { Alert, Button, StyleSheet, Text, View } from "react-native";
1212

1313
function GetSet() {
14-
const [storedNumber, setStoredNumber] = React.useState("");
15-
const [needsRestart, setNeedsRestart] = React.useState(false);
16-
const [storage] = useState(() => createAsyncStorage(StorageDb));
14+
const [storedNumber, setStoredNumber] = React.useState<number | null>(null);
15+
const [storage] = useState(() => createAsyncStorage("test-database"));
1716

18-
React.useEffect(() => {
19-
storage
20-
.getItem(STORAGE_KEY)
21-
.then((value) => {
22-
if (value) {
23-
setStoredNumber(value || "");
24-
}
25-
})
26-
.catch(console.error);
27-
}, [storage]);
17+
async function readCurrent() {
18+
try {
19+
const value = await storage.getItem(STORAGE_KEY);
20+
setStoredNumber(value ? Number(value) : null);
21+
} catch (e) {
22+
console.error(e);
23+
}
24+
}
2825

2926
const increaseByTen = async () => {
30-
const newNumber = +storedNumber > 0 ? +storedNumber + 10 : 10;
27+
const newNumber = (storedNumber ?? 0) + 10;
3128

32-
await storage.setItem(STORAGE_KEY, `${newNumber}`).catch(console.error);
33-
34-
setStoredNumber(`${newNumber}`);
35-
setNeedsRestart(true);
29+
try {
30+
await storage.setItem(STORAGE_KEY, `${newNumber}`);
31+
setStoredNumber(newNumber);
32+
await readCurrent();
33+
} catch (e) {
34+
console.error(e);
35+
}
3636
};
3737

3838
const removeItem = async () => {
3939
await storage.removeItem(STORAGE_KEY).catch(console.error);
40-
setNeedsRestart(true);
40+
await readCurrent();
41+
};
42+
43+
const listAllKeys = async () => {
44+
try {
45+
const keys = await storage.getKeys();
46+
Alert.alert("keys", keys.join(", "));
47+
} catch (e) {
48+
console.error(e);
49+
}
4150
};
4251

52+
React.useEffect(() => {
53+
readCurrent();
54+
}, [storage]);
55+
4356
return (
4457
<View>
4558
<Text style={styles.text}>Currently stored: </Text>
4659
<Text style={styles.text}>{storedNumber}</Text>
4760
<Button title="Increase by 10" onPress={increaseByTen} />
4861
<Button title="remove item" onPress={removeItem} />
49-
{needsRestart ? <Text>Hit restart to see effect</Text> : null}
62+
<Button title="list all keys" onPress={listAllKeys} />
5063
</View>
5164
);
5265
}
@@ -61,6 +74,5 @@ const styles = StyleSheet.create({
6174
});
6275

6376
export const STORAGE_KEY = "random";
64-
const StorageDb = "test";
6577

6678
export default GetSet;

examples/example-react-native/src/tests.ts

Lines changed: 0 additions & 78 deletions
This file was deleted.

examples/example-react-native/src/types.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)