From 278bb75c5e42740b740caad05a9f7c3466937eb1 Mon Sep 17 00:00:00 2001 From: Ahmad Izzudin Alifyandra Date: Sat, 4 Dec 2021 18:01:26 +0700 Subject: [PATCH] chore: add getEcosystem function and tweak ecosystem details --- .../ecosystem/EcosystemDetailScreen.tsx | 5 ++++- .../fetchUsersByEcosystemIdAndType.ts | 5 ++++- .../firestore/ecosystem/getEcosystem.ts | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/service/firestore/ecosystem/getEcosystem.ts diff --git a/src/screens/ecosystem/EcosystemDetailScreen.tsx b/src/screens/ecosystem/EcosystemDetailScreen.tsx index c1998fe..d88edb9 100644 --- a/src/screens/ecosystem/EcosystemDetailScreen.tsx +++ b/src/screens/ecosystem/EcosystemDetailScreen.tsx @@ -35,7 +35,7 @@ const EcosystemDetailScreen = ({ setIsFetched(true); }); getEcosystemRating(id, user.id).then((res) => setCurrentRating(res)); - }, []); + }, [id, user.id]); const alertFollow = () => { Alert.alert("Joined Ecosystem", "You have joined the ecosystem"); @@ -110,6 +110,9 @@ const EcosystemDetailScreen = ({ onPress={() => { nav.navigate("UpdateEcosystem", { screen: "UpdateEcosystemScreen", + params: { + id, + }, }); }} /> diff --git a/src/service/firestore/ecosystem/fetchUsersByEcosystemIdAndType.ts b/src/service/firestore/ecosystem/fetchUsersByEcosystemIdAndType.ts index 653f630..8f94570 100644 --- a/src/service/firestore/ecosystem/fetchUsersByEcosystemIdAndType.ts +++ b/src/service/firestore/ecosystem/fetchUsersByEcosystemIdAndType.ts @@ -24,8 +24,11 @@ export const fetchUsersByEcosystemIdAndType = async ( }); const users: IUser[] = []; + console.log(ecosystemCategoryMembers); for (let i = 0; i < ecosystemCategoryMembers.length; i++) { - const userId = Object.keys(ecosystemCategoryMembers[i].members); + const userId = ecosystemCategoryMembers[i].members + ? Object.keys(ecosystemCategoryMembers[i].members) + : []; for (let j = 0; j < userId.length; j++) { const userDoc = await getUser(userId[j]); const userData = { ...(userDoc.data() as IUser), id: userDoc.id }; diff --git a/src/service/firestore/ecosystem/getEcosystem.ts b/src/service/firestore/ecosystem/getEcosystem.ts new file mode 100644 index 0000000..7f8b4bf --- /dev/null +++ b/src/service/firestore/ecosystem/getEcosystem.ts @@ -0,0 +1,19 @@ +import firebase from "firebase"; +import { getEnv } from "../../../helpers/getEnv"; +import { IEcosystem } from "../../../types/firestore/ecosystems"; + +export const getEcosystem = async ( + ecosystemId: string +): Promise => { + const db = firebase.firestore(); + + const doc = await db + .collection("ecosystems_" + getEnv()) + .doc(ecosystemId) + .get(); + + return { + id: doc.id, + ...(doc.data() as IEcosystem), + }; +}; -- GitLab