-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi.js
More file actions
74 lines (68 loc) · 1.71 KB
/
Copy pathapi.js
File metadata and controls
74 lines (68 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { AsyncStorage } from "react-native";
KEY = 'mobile-flashcards'
export function getDecks() {
return AsyncStorage.getItem(KEY)
.then(JSON.parse)
}
export function getDeck(id) {
return AsyncStorage.getItem(KEY)
.then(JSON.parse)
.then(({ id }) => id)
}
export function saveDeckTitle(id) {
return AsyncStorage.mergeItem(KEY,
JSON.stringify({
[id]: {
title: id,
questions: []
}
})
)
}
export function addCardToDeck(title, card) {
return AsyncStorage.getItem(KEY)
.then(JSON.parse)
.then((decks) => {
const np = JSON.stringify({
...decks,
[title]: {
...decks[title],
questions: decks[title].questions.concat(card)
}
})
return AsyncStorage.setItem(KEY, np)
})
}
// Seed data if not already there.
AsyncStorage.getItem(KEY)
.then(JSON.parse)
.then((data) => {
if (data === null) {
AsyncStorage.setItem(KEY,
JSON.stringify({
'React': {
title: 'React',
questions: [
{
question: 'What is React?',
answer: 'A library for managing user interfaces'
},
{
question: 'Where do you make Ajax requests in React?',
answer: 'The componentDidMount lifecycle event'
}
]
},
'JavaScript': {
title: 'JavaScript',
questions: [
{
question: 'What is a closure?',
answer: 'The combination of a function and the lexical environment within which that function was declared.'
}
]
}
})
)
}
})