added logo image and slogan to sign in page
This commit is contained in:
45
src/lib/stores/entriesStore.svelte 2.js
Normal file
45
src/lib/stores/entriesStore.svelte 2.js
Normal file
@@ -0,0 +1,45 @@
|
||||
import { db } from '../firebase.js';
|
||||
import { collection, doc, onSnapshot, query, orderBy, addDoc, updateDoc, deleteDoc, serverTimestamp } from 'firebase/firestore';
|
||||
|
||||
let entries = $state([]);
|
||||
let _uid = null;
|
||||
let _unsubscribe = null;
|
||||
|
||||
export function getEntries() {
|
||||
return entries;
|
||||
}
|
||||
|
||||
export function initEntriesListener(uid) {
|
||||
if (_unsubscribe) _unsubscribe();
|
||||
_uid = uid;
|
||||
const q = query(
|
||||
collection(db, 'users', uid, 'entries'),
|
||||
orderBy('createdAt', 'desc')
|
||||
);
|
||||
_unsubscribe = onSnapshot(q, (snap) => {
|
||||
entries = snap.docs.map((d) => ({ id: d.id, ...d.data() }));
|
||||
});
|
||||
}
|
||||
|
||||
export async function addEntry(data) {
|
||||
if (!_uid) return null;
|
||||
const ref = await addDoc(collection(db, 'users', _uid, 'entries'), {
|
||||
...data,
|
||||
createdAt: serverTimestamp(),
|
||||
updatedAt: serverTimestamp(),
|
||||
});
|
||||
return ref.id;
|
||||
}
|
||||
|
||||
export async function updateEntry(id, data) {
|
||||
if (!_uid) return;
|
||||
await updateDoc(doc(db, 'users', _uid, 'entries', id), {
|
||||
...data,
|
||||
updatedAt: serverTimestamp(),
|
||||
});
|
||||
}
|
||||
|
||||
export async function removeEntry(id) {
|
||||
if (!_uid) return;
|
||||
await deleteDoc(doc(db, 'users', _uid, 'entries', id));
|
||||
}
|
||||
Reference in New Issue
Block a user