From 9d96ac4ae65c9fe6f5df8b5a95028495f4b00c49 Mon Sep 17 00:00:00 2001 From: Michael Foiani Date: Mon, 30 Jul 2018 17:47:26 -0400 Subject: Making big additions to backend and frontend development to fourm system. --- src/actions/app.js | 10 +++++++++- src/actions/firebase.js | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) (limited to 'src/actions') diff --git a/src/actions/app.js b/src/actions/app.js index 3a5f9fb..fce37d7 100644 --- a/src/actions/app.js +++ b/src/actions/app.js @@ -26,6 +26,9 @@ export const navigate = (path) => (dispatch) => { dispatch(updateDrawerState(false)); }; +import {snapshotFourms} from './firebase.js'; +var hasSubscribedPosts = false; + const loadPage = (page) => (dispatch) => { switch(page) { case 'home': @@ -41,7 +44,12 @@ const loadPage = (page) => (dispatch) => { import('../components/mao-tutoring.js'); break; case 'fourms': - import('../components/mao-fourms.js'); + import('../components/mao-fourms.js').then((module) => { + if(!hasSubscribedPosts) { + dispatch(snapshotFourms()); + hasSubscribedPosts = true; + } + });; break; case 'account': import('../components/mao-account.js'); diff --git a/src/actions/firebase.js b/src/actions/firebase.js index 2d24908..65278fb 100644 --- a/src/actions/firebase.js +++ b/src/actions/firebase.js @@ -174,4 +174,38 @@ export const requestHours = (_time, _trainee, _date) => (dispatch, getState) => }); } +export const CREATE_FOURM_POST = 'CREATE_FOURM_POST'; +export const SNAPSHOT_FOURM = 'SNAPSHOT_FOURM'; +export const UPDATE_FOURM_POSTS = 'UPDATE_FOURM_POSTS'; + +export const createFourmPost = (_subject, _content) => (dispatch, getState) => { + var docRef = firestore.collection('posts'); + const _uid = getState().firebase.uid; + + docRef.add({ + uid: _uid, + subject: _subject, + content: _content + }); +} + +export const snapshotFourms = () => (dispatch) => { + var docRef = firestore.collection('posts'); + + docRef.onSnapshot((query) => { + var fourmPosts = []; + query.forEach((doc) => { + fourmPosts.push(doc.data()); + }); + console.log(fourmPosts); + dispatch(updateFourmPosts(fourmPosts)); + }); +} + +export const updateFourmPosts = (_fourmPosts) => { + return { + type: UPDATE_FOURM_POSTS, + payload: _fourmPosts + } +} //End Firebase Firestore -- cgit v1.2.3-70-g09d2