import firebase from 'gatsby-plugin-firebase'; import React, { memo, useEffect, useState } from 'react'; import { Helmet } from 'react-helmet'; 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 [resumes, setResumes] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const ref = `users/${user.uid}/resumes`; firebase .database() .ref(ref) .on('value', (snapshot) => { if (snapshot.val()) { const resumesArr = []; const data = snapshot.val(); Object.keys(data).forEach((key) => resumesArr.push(data[key])); setResumes(resumesArr); } setLoading(false); }); firebase .database() .ref(ref) .on('child_removed', (snapshot) => { if (snapshot.val()) { setResumes(resumes.filter((x) => x.id === snapshot.val().id)); } }); return () => { firebase.database().ref(ref).off(); }; }, [user]); if (loading) { return ; } return (
Dashboard | Reactive Resume
{resumes.map((x) => ( ))}
); }; export default memo(Dashboard);