mirror of
https://github.com/urosran/cally.git
synced 2025-07-15 09:45:20 +00:00
62 lines
1.5 KiB
TypeScript
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;
|