diff --git a/components/pages/grocery/GroceryItem.tsx b/components/pages/grocery/GroceryItem.tsx index 138ad0e..893d835 100644 --- a/components/pages/grocery/GroceryItem.tsx +++ b/components/pages/grocery/GroceryItem.tsx @@ -6,6 +6,8 @@ import EditGroceryFrequency from "./EditGroceryFrequency"; import EditGroceryItem from "./EditGroceryItem"; import {StyleSheet} from "react-native"; import {IGrocery} from "@/hooks/firebase/types/groceryData"; +import firestore from "@react-native-firebase/firestore"; +import {UserProfile} from "@/hooks/firebase/types/profileTypes"; const GroceryItem = ({ item, @@ -22,6 +24,7 @@ const GroceryItem = ({ const [category, setCategory] = useState( GroceryCategory.None ); + const [itemCreator, setItemCreator] = useState(null); const handleTitleChange = (newTitle: string) => { updateGroceryItem({id: item?.id, title: newTitle}); @@ -33,8 +36,23 @@ const GroceryItem = ({ useEffect(() => { setNewTitle(item.title); + + getItemCreator(item?.creatorId); }, []); + const getItemCreator = async (uid: string | undefined) => { + if (uid) { + const documentSnapshot = await firestore() + .collection("Profiles") + .doc(uid) + .get(); + + if (documentSnapshot.exists) { + setItemCreator(documentSnapshot.data() as UserProfile) + } + } + } + return ( - Requested by Austin + Requested by {itemCreator?.firstName} diff --git a/hooks/firebase/types/groceryData.ts b/hooks/firebase/types/groceryData.ts index 5f7c134..193d1d8 100644 --- a/hooks/firebase/types/groceryData.ts +++ b/hooks/firebase/types/groceryData.ts @@ -9,4 +9,5 @@ export interface IGrocery { frequency: GroceryFrequency; bought: boolean; familyId?: string, + creatorId?: string } \ No newline at end of file diff --git a/hooks/firebase/useCreateGrocery.ts b/hooks/firebase/useCreateGrocery.ts index 4f8e027..b286dd3 100644 --- a/hooks/firebase/useCreateGrocery.ts +++ b/hooks/firebase/useCreateGrocery.ts @@ -4,7 +4,7 @@ import { useAuthContext } from "@/contexts/AuthContext"; import {IGrocery} from "@/hooks/firebase/types/groceryData"; export const useCreateGrocery = () => { - const { profileData } = useAuthContext(); + const { user: currentUser, profileData } = useAuthContext(); const queryClients = useQueryClient(); return useMutation({ @@ -14,7 +14,7 @@ export const useCreateGrocery = () => { const newDoc = firestore().collection('Groceries').doc(); await firestore() .collection("Groceries") - .add({...groceryData, id: newDoc.id, familyId: profileData?.familyId}) + .add({...groceryData, id: newDoc.id, familyId: profileData?.familyId, creatorId: currentUser?.uid}) } catch (e) { console.error(e) } diff --git a/hooks/firebase/useGetGroceries.ts b/hooks/firebase/useGetGroceries.ts index ada31a0..91ac256 100644 --- a/hooks/firebase/useGetGroceries.ts +++ b/hooks/firebase/useGetGroceries.ts @@ -23,7 +23,8 @@ export const useGetGroceries = () => { approved: data.approved, bought: data.bought, recurring: data.recurring, - frequency: data.frequency + frequency: data.frequency, + creatorId: data.creatorId }; }); } diff --git a/hooks/firebase/useUpdateGrocery.ts b/hooks/firebase/useUpdateGrocery.ts index b29eead..e5143df 100644 --- a/hooks/firebase/useUpdateGrocery.ts +++ b/hooks/firebase/useUpdateGrocery.ts @@ -8,7 +8,6 @@ export const useUpdateGrocery = () => { return useMutation({ mutationKey: ["updateGrocery"], mutationFn: async (groceryData: Partial) => { - console.log(groceryData); try { await firestore() .collection("Groceries")