import firebase from 'gatsby-plugin-firebase'; import React, { useEffect, useState } from 'react'; import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; import CreateResume from '../../components/dashboard/CreateResume'; import ResumePreview from '../../components/dashboard/ResumePreview'; import TopNavbar from '../../components/dashboard/TopNavbar'; import LoadingScreen from '../../components/router/LoadingScreen'; const Dashboard = ({ user }) => { const { t } = useTranslation(); const [resumes, setResumes] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const resumesRef = 'resumes'; const socketRef = '/.info/connected'; firebase .database() .ref(socketRef) .on('value', (snapshot) => { if (snapshot.val()) { setLoading(false); firebase.database().ref(socketRef).off(); } }); firebase .database() .ref(resumesRef) .orderByChild('user') .equalTo(user.uid) .on('value', (snapshot) => { if (snapshot.val()) { const resumesArr = []; const data = snapshot.val(); Object.keys(data).forEach((key) => resumesArr.push(data[key])); setResumes(resumesArr); } }); firebase .database() .ref(resumesRef) .orderByChild('user') .equalTo(user.uid) .on('child_removed', (snapshot) => { if (snapshot.val()) { setResumes(resumes.filter((x) => x.id === snapshot.val().id)); } }); return () => { firebase.database().ref(resumesRef).off(); }; }, [user]); if (loading) { return ; } return (
{t('dashboard.title')} | {t('shared.appName')}
{resumes.map((x) => ( ))}
); }; export default Dashboard;