-
Notifications
You must be signed in to change notification settings - Fork 0
/
storage.js
115 lines (90 loc) · 2.93 KB
/
storage.js
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import AsyncStorage from '@react-native-async-storage/async-storage';
import {
v4 as uuid
} from 'uuid';
export const initialize = async () => {
try {
await AsyncStorage.setItem('@ll_notes', JSON.stringify({}))
} catch (e) {
console.log(e.message);
}
}
export const createNote = async (
title,
description
) => {
const unique_id = uuid();
const note = {
id: unique_id,
title: title,
description: description,
createdAt: new Date(),
}
try {
const allNotes = await AsyncStorage.getItem('@ll_notes');
const date = new Date();
const dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000))
.toISOString()
.split("T")[0];
// Adding new note
const allNotesObj = JSON.parse(allNotes)
if (dateString in allNotesObj) {
allNotesObj[dateString].push(note);
} else {
allNotesObj[dateString] = [note];
}
await AsyncStorage.setItem('@ll_notes', JSON.stringify(allNotesObj));
} catch (e) {
console.log(e.message);
}
}
export const getAllNotes = async () => {
const notes = await AsyncStorage.getItem('@ll_notes');
const allNotesObj = JSON.parse(notes);
// console.log(allNotesObj, 'all');
return allNotesObj;
}
export const updateNote = async (id, title, description) => {
try {
const notes = await AsyncStorage.getItem('@ll_notes');
const allNotesObj = JSON.parse(notes);
const allDates = Object.keys(allNotesObj);
allDates.forEach((notesOfADayKey) => {
allNotesObj[notesOfADayKey].forEach(note => {
if (note.id === id) {
note.title = title;
note.description = description;
}
});
});
await AsyncStorage.setItem('@ll_notes', JSON.stringify(allNotesObj));
} catch (e) {
console.log(e.message);
}
}
export const deleteNote = async (id) => {
try {
// Search for all notes
const notes = await AsyncStorage.getItem('@ll_notes');
const allNotesObj = JSON.parse(notes);
const allDates = Object.keys(allNotesObj);
allDates.forEach((notesOfADayKey) => {
const updatedNotesOfADay = allNotesObj[notesOfADayKey].filter(note => {
return note.id !== id;
});
allNotesObj[notesOfADayKey] = updatedNotesOfADay;
})
await AsyncStorage.setItem('@ll_notes', JSON.stringify(allNotesObj));
} catch (e) {
console.log(e.message);
}
}
export const getHistory = async () => {
const history = await AsyncStorage.getItem('@ll_notes');
// console.log(history);
return JSON.parse(history)
}
export const clearHistory = async () => {
await AsyncStorage.setItem('@ll_notes', JSON.stringify({}))
// console.log(await AsyncStorage.getItem('@ll_notes'));
}