upd: realtime database

Deskripsi:
- diskusi divisi

No Issues
This commit is contained in:
2025-07-15 10:50:00 +08:00
parent 3808de683a
commit ae420ec560

View File

@@ -14,6 +14,7 @@ import {
} from "@/lib/api";
import { useAuthSession } from "@/providers/AuthProvider";
import { Ionicons, MaterialIcons } from "@expo/vector-icons";
import { firebase } from "@react-native-firebase/database";
import { router, Stack, useLocalSearchParams } from "expo-router";
import { useEffect, useState } from "react";
import { Pressable, ScrollView, Text, View } from "react-native";
@@ -55,6 +56,28 @@ export default function DiscussionDetail() {
const [loading, setLoading] = useState(true)
const [loadingKomentar, setLoadingKomentar] = useState(true)
const arrSkeleton = Array.from({ length: 3 })
const reference = firebase.app().database('https://mobile-darmasaba-default-rtdb.asia-southeast1.firebasedatabase.app').ref(`/discussion-division/${detail}`);
useEffect(() => {
const onValueChange = reference.on('value', snapshot => {
if (snapshot.val() == null) {
reference.set({ trigger: true })
}
handleLoadComment(false)
});
// Stop listening for updates when no longer required
return () => reference.off('value', onValueChange);
}, []);
function updateTrigger() {
reference.once('value', snapshot => {
const data = snapshot.val();
reference.update({ trigger: !data.trigger });
});
}
async function handleLoad(loading: boolean) {
try {
@@ -131,8 +154,8 @@ export default function DiscussionDetail() {
data: { comment: komentar, user: hasil },
});
if (response.success) {
setKomentar("");
handleLoadComment(false);
setKomentar("")
updateTrigger()
}
} catch (error) {
console.error(error);