Files
cally/hooks/firebase/useCaregivers.ts
2024-08-21 20:03:40 +02:00

62 lines
1.5 KiB
TypeScript

import { useState } from "react";
import firestore from "@react-native-firebase/firestore";
import { CaregiverProfile } from "./types/profileTypes";
const useCaregivers = () => {
const [caregivers, setCaregivers] = useState<CaregiverProfile[]>([]);
const [caregiver, setCaregiver] = useState<CaregiverProfile>({
name: "",
contact: "",
userType: "caregiver",
email: "test@test.com",
password: "test@test.com"
});
const fetchCaregivers = async () => {
const caregiverProfiles = await getCaregivers();
setCaregivers(caregiverProfiles);
};
const getCaregivers = async (): Promise<CaregiverProfile[]> => {
try {
const snapshot = await firestore()
.collection("Profiles")
.where("userType", "==", "caregiver")
.get();
const caregivers: CaregiverProfile[] = snapshot.docs.map((doc) => {
const data = doc.data();
return {
...data,
} as CaregiverProfile;
});
return caregivers;
} catch (error) {
console.error("Error retrieving caregivers:", error);
return [];
}
};
const handleNewCaregiver = async (newCaregiver: CaregiverProfile) => {
try {
await firestore().collection("Profiles").add(newCaregiver);
} catch (error) {
console.error(error);
} finally {
setCaregiver((prev) => ({ ...prev, name: "", contact: "" }));
fetchCaregivers();
}
};
return {
caregivers,
caregiver,
setCaregiver,
fetchCaregivers,
handleNewCaregiver,
};
};
export default useCaregivers;