Skip to content

Commit 945f1fe

Browse files
committed
Typescriptify
1 parent fb941f2 commit 945f1fe

1 file changed

Lines changed: 46 additions & 53 deletions

File tree

src/main.ts

Lines changed: 46 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,77 @@
11
import './style.css'
2-
import Dexie from 'dexie';
3-
2+
import Dexie, { type EntityTable } from "dexie";
3+
4+
interface Note {
5+
id: number;
6+
time: number;
7+
text: string;
8+
lat: number;
9+
lon: number;
10+
}
411

5-
const db = new Dexie('Cycleoops');
12+
const db = new Dexie("Cycleoops") as Dexie & {
13+
notes: EntityTable<Note, "id">;
14+
};
615

716
// Declare tables, IDs and indexes
817
db.version(1).stores({
9-
notes: '++id, time, text, lat, lon'
18+
notes: "++id, time, text, lat, lon",
1019
});
1120

12-
const form = document.querySelector('form')!
13-
const posts = document.querySelector('ol')!
14-
21+
const form = document.querySelector("form")!;
22+
const posts = document.querySelector("ol")!;
1523

1624
async function update() {
17-
const notes = await db.notes
18-
.orderBy("time")
19-
.reverse()
20-
.toArray();
21-
22-
console.log(notes)
23-
24-
posts.innerHTML = ''
25+
const notes = await db.notes.orderBy("time").reverse().toArray();
2526

26-
for(const note of notes) {
27+
console.log(notes);
2728

28-
const li = document.createElement('li')
29+
posts.innerHTML = "";
2930

30-
const timestamp = new Date(note.time)
31-
li.innerText = `${note.text} (${timestamp.toLocaleString()})`
32-
33-
posts.appendChild(li)
31+
for (const note of notes) {
32+
const li = document.createElement("li");
3433

34+
const timestamp = new Date(note.time);
35+
li.innerText = `${note.text} (${timestamp.toLocaleString()})`;
3536

37+
posts.appendChild(li);
3638
}
37-
3839
}
3940

40-
update()
41-
42-
form?.addEventListener('submit', async e => {
43-
e.preventDefault()
44-
45-
const data = new FormData(form)
46-
const text = data.get("message")
47-
const time = Date.now()
48-
41+
update();
4942

50-
const [lat, lon] = await new Promise((resolve, reject) => {
51-
52-
navigator.geolocation.getCurrentPosition((position) => {
53-
console.log(position.coords);
54-
resolve([position.coords.latitude, position.coords.longitude])
43+
form?.addEventListener("submit", async (e) => {
44+
e.preventDefault();
5545

46+
const data = new FormData(form);
47+
const text = data.get("message") as string;
48+
const time = Date.now();
5649

57-
}, () => {
58-
59-
resolve([0,0])
60-
61-
});
62-
63-
64-
})
65-
50+
const [lat, lon] = await new Promise<[number, number]>((resolve, reject) => {
51+
navigator.geolocation.getCurrentPosition(
52+
(position) => {
53+
console.log(position.coords);
54+
resolve([position.coords.latitude, position.coords.longitude]);
55+
},
56+
() => {
57+
resolve([0, 0]);
58+
}
59+
);
60+
});
6661

6762
const noteId = await db.notes.add({
6863
time,
6964
text,
7065
lat,
71-
lon
72-
})
73-
74-
console.log(noteId)
66+
lon,
67+
});
7568

69+
console.log(noteId);
7670

77-
update()
71+
update();
7872

79-
form.reset()
80-
81-
})
73+
form.reset();
74+
});
8275

8376

8477
// resize any text areas to fit content

0 commit comments

Comments
 (0)