upd: realtime database
Deskripsi: - diskusi divisi No Issues
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user