aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Foiani <mfoiani2019@communiyschoolnaples.org>2018-08-05 00:31:13 -0400
committerMichael Foiani <mfoiani2019@communiyschoolnaples.org>2018-08-05 00:32:19 -0400
commit68f2d6cc8716409e29cfecc407821b1c5196d333 (patch)
tree54fdeaec45c980d4e2f7e442feabdd422f883bac
parentc1b873625962448bae6d10a68ab537f2fbe1313b (diff)
Made small adjustments to improve app.
Deleted main firebase.js file. Also, fixed some small 404 errors and spelling errors.
-rw-r--r--src/actions/app.js27
-rw-r--r--src/actions/firebase.js206
-rw-r--r--src/components/mao-home.js2
-rw-r--r--src/reducers/firebase.js97
4 files changed, 20 insertions, 312 deletions
diff --git a/src/actions/app.js b/src/actions/app.js
index e0b95e3..e59a75b 100644
--- a/src/actions/app.js
+++ b/src/actions/app.js
@@ -29,17 +29,20 @@ export const navigate = (path) => (dispatch) => {
import { snapshotForums } from './firebaseFirestore.js';
var hasSubscribedPosts = false;
-const loadPage = (page) => (dispatch) => {
+const loadPage = (page) => (dispatch, getState) => {
switch(page) {
case 'home':
import('../components/mao-home.js')
- break;
+ break;
+
case 'compete':
import('../components/mao-competitions.js');
- break;
+ break;
+
case 'tutor':
import('../components/mao-tutoring.js');
- break;
+ break;
+
case 'forums':
import('../components/mao-forums.js').then((module) => {
if(!hasSubscribedPosts) {
@@ -47,13 +50,21 @@ const loadPage = (page) => (dispatch) => {
hasSubscribedPosts = true;
}
});
- break;
+ break;
+
case 'account':
import('../components/mao-account.js');
- break;
+ break;
+
case 'admin':
- import('../components/mao-admin.js');
- break;
+ if(getState.firebaseAuth.isAdmin) {
+ import('../components/mao-admin.js');
+ } else {
+ page = 'view404';
+ import('../components/my-view404.js');
+ }
+ break;
+
default:
page = 'view404';
import('../components/my-view404.js');
diff --git a/src/actions/firebase.js b/src/actions/firebase.js
deleted file mode 100644
index d93e227..0000000
--- a/src/actions/firebase.js
+++ /dev/null
@@ -1,206 +0,0 @@
-import { firestore, auth } from '../firebase.js';
-
-//Start Firbase Auth
-export const AUTH_FAIL = 'AUTH_FAIL';
-export const AUTH_SUCCESS = 'AUTH_SUCCESS';
-export const FETCH_DIVISON = 'FETCH_DIVISON';
-export const UPDATE_DIVISON = 'UPDATE_DIVISON';
-export const AUTH_SIGN_OUT = 'AUTH_SIGN_OUT';
-export const CREATE_ACCOUNT = 'CREATE_ACCOUNT';
-export const ADMIN_LISTENER = 'ADMIN_LISTENER';
-export const IS_ADMIN = 'IS_ADMIN';
-export const ADMIN_CONTROLS = 'ADMIN_CONTROLS';
-export const UPDATE_ADMIN = 'UPDATE_ADMIN';
-export const SET_USER_DATA = 'SET_USER_DATA';
-
-
-
-//End Firebase Auth
-
-//Start Firebase Firestore
-export const SNAPSHOT_HOURS = 'SNAPSHOT_HOURS';
-export const UPDATE_HOURS = 'UPDATE_HOURS';
-
-export const snapshotHours = () => (dispatch, getState) => {
-
- const currentState = getState().firebase;
- if(currentState.initialized) {
- var totalHours;
- var docRefUsers = firestore.collection('users').doc(currentState.uid);
- var docRefReq = firestore.collection('requests').where('uid', '==', currentState.uid);
-
- docRefUsers.onSnapshot((doc) => {
- totalHours = doc.data().hours;
-
- docRefReq.onSnapshot((query) => {
- var requestedHours = 0;
- query.forEach((docs) => {
- requestedHours += docs.data().time;
- });
- dispatch(updateHours(totalHours, requestedHours));
- });
- });
- }
-
-
-
-}
-
-export const updateHours = (hours, reqHours) => {
- return {
- type: 'UPDATE_HOURS',
- approvedHours: hours,
- requestedHours: reqHours
- }
-}
-
-export const REGISTER_COMP = 'REGISTER_COMP';
-export const SNAPSHOT_REGISTERED_COMPETITIONS = 'SNAPSHOT_REGISTERED_COMPETITIONS';
-export const UPDATE_REGISTERED_COMPETITIONS = 'UPDATE_REGISTERED_COMPETITIONS';
-export const SNAPSHOT_ADMIN_COMP_LIST = 'SNAPSHOT_ADMIN_COMP_LIST';
-export const UPDATE_ADMIN_COMP_LIST = 'UPDATE_ADMIN_COMP_LIST';
-
-
-
-export const updateRegisteredCompetitions = (registeredComps) => {
- return {
- type: UPDATE_REGISTERED_COMPETITIONS,
- payload: registeredComps
- }
-}
-
-export const snapshotAdminCompList = () => (dispatch) => {
- var docRef = firestore.collection('competitions');
- docRef.onSnapshot((querySnapshot) => {
- var compList = [];
- querySnapshot.forEach((doc) => {
- var divisonData = [];
- for(var i = 0; i < doc.data().uids.length; i++) {
- var docRefDivison = firestore.collection('users').doc(doc.data().uids[i]);
- docRefDivison.get().then((docUser) => {
- divisonData.push(docUser.data().divison);
- });
- }
- compList.push({
- ...doc.data(),
- name: doc.id,
- divisons: divisonData
- });
- });
- dispatch(updateAdminCompList(compList));
- });
-}
-
-export const updateAdminCompList = (compList) => {
- return {
- type: UPDATE_ADMIN_COMP_LIST,
- payload: compList
- }
-}
-
-export const REQUEST_HOURS = 'REQUEST_HOURS';
-export const ADMIN_APPROVE_HOURS = 'ADMIN_APPROVE_HOURS';
-export const ADMIN_REJECT_HOURS = 'ADMIN_REJECT_HOURS';
-export const ADMIN_DELETE_REQUEST = 'ADMIN_DELETE_REQUEST';
-export const SNAPSHOT_ADMIN_REQUESTS = 'SNAPSHOT_ADMIN_REQUESTS';
-export const UPDATE_ADMIN_REQUESTS = 'UPDATE_ADMIN_REQUESTS';
-
-export const requestHours = (_time, _trainee, _date) => (dispatch, getState) => {
- var docRef = firestore.collection('requests');
- const _uid = getState().firebase.uid;
- const _email = getState().firebase.userEmail;
-
- docRef.add({
- time: _time,
- trainee: _trainee,
- day: _date,
- uid: _uid,
- email: _email
- });
-}
-
-export const snapshotAdminRequests = () => (dispatch) => {
- var docRef = firestore.collection('requests');
-
- docRef.onSnapshot((querySnapshot) => {
- var requestList = [];
- querySnapshot.forEach((doc) => {
- requestList.push({
- ...doc.data(),
- docId: doc.id
- });
- });
- dispatch(updateAdminRequests(requestList));
- });
-}
-
-export const updateAdminRequests = (requests) => {
- return {
- type: UPDATE_ADMIN_REQUESTS,
- payload: requests
- }
-}
-
-export const adminApproveHours = (_uid, _time, _id) => (dispatch) => {
-
- var docRef = firestore.collection('users').doc(_uid);
-
- docRef.get().then((doc) => {
- if(doc.exists) {
- docRef.update({
- hours: (doc.data().hours + _time)
- }).catch((error) => {
- alert(error);
- });
- }
- });
-
- dispatch(adminDeleteRequest(_id));
-}
-
-export const adminRejectHours = (_id) => (dispatch) => {
- dispatch(adminDeleteRequest(_id));
-}
-
-export const adminDeleteRequest = (_id) => (dispatch) => {
- var docRef = firestore.collection('requests').doc(_id);
- docRef.delete().then(() => {
- //console.log('Deleted request with id ' + _id);
- });
-}
-
-
-export const CREATE_FORUM_POST = 'CREATE_FORUM_POST';
-export const SNAPSHOT_FORUM = 'SNAPSHOT_FORUM';
-export const UPDATE_FORUM_POSTS = 'UPDATE_FORUM_POSTS';
-
-export const createForumPost = (_subject, _content) => (dispatch, getState) => {
- var docRef = firestore.collection('posts');
- const userEmail = getState().firebase.userEmail;
-
- docRef.add({
- email: userEmail,
- subject: _subject,
- content: _content
- });
-}
-
-export const snapshotForums = () => (dispatch) => {
- var docRef = firestore.collection('posts');
-
- docRef.onSnapshot((query) => {
- var forumPosts = [];
- query.forEach((doc) => {
- forumPosts.push(doc.data());
- });
- dispatch(updateForumPosts(forumPosts));
- });
-}
-
-export const updateForumPosts = (_forumPosts) => {
- return {
- type: UPDATE_FORUM_POSTS,
- payload: _forumPosts
- }
-}
-//End Firebase Firestore
diff --git a/src/components/mao-home.js b/src/components/mao-home.js
index ac9c04c..5238319 100644
--- a/src/components/mao-home.js
+++ b/src/components/mao-home.js
@@ -32,7 +32,7 @@ class MaoHome extends PageViewElement {
<section class="img-section">
<div class="container">
<img src="https://i.imgur.com/BkbHV33.jpg" alt="Maths">
- <div class="centered">Becuase... Math Is Beautiful</div>
+ <div class="centered">Because... Math Is Beautiful</div>
</div>
</section>
diff --git a/src/reducers/firebase.js b/src/reducers/firebase.js
deleted file mode 100644
index 6c4e206..0000000
--- a/src/reducers/firebase.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
-@license
-Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-*/
-
-import {
- AUTH_SUCCESS,
- AUTH_SIGN_OUT,
- UPDATE_DIVISON,
- UPDATE_HOURS,
- UPDATE_REGISTERED_COMPETITIONS,
- UPDATE_FORUM_POSTS,
- UPDATE_ADMIN,
- UPDATE_ADMIN_REQUESTS,
- UPDATE_ADMIN_COMP_LIST
-}
-from '../actions/firebase.js';
-
-const firebase = (state = {initialized: false, hours: -1, requestedHours: -1, uid: "", userEmail: "", divison: "", registeredComps: [], forumPosts: [], isAdmin: false, requests: [], compList: []}, action) => {
- switch (action.type) {
- case AUTH_SUCCESS:
- return {
- ...state,
- initialized: action.payload,
- uid: action.uid,
- userEmail: action.userEmail
- };
- break;
-
- case UPDATE_DIVISON:
- return {
- ...state,
- divison: action.payload
- };
- break;
-
- case AUTH_SIGN_OUT:
- return {
- ...state,
- initialized: action.payload,
- authMessage: action.code
- }
- break;
-
- case UPDATE_HOURS:
- return {
- ...state,
- hours: action.approvedHours,
- requestedHours: action.requestedHours
- }
- break;
-
- case UPDATE_REGISTERED_COMPETITIONS:
- return {
- ...state,
- registeredComps : action.payload
- }
- break;
-
- case UPDATE_FORUM_POSTS:
- return {
- ...state,
- forumPosts : action.payload
- }
- break;
-
- case UPDATE_ADMIN:
- return {
- ...state,
- isAdmin : action.payload
- }
-
- case UPDATE_ADMIN_REQUESTS:
- return {
- ...state,
- requests : action.payload
- }
- break;
-
- case UPDATE_ADMIN_COMP_LIST:
- return {
- ...state,
- compList : action.payload
- }
- break;
-
- default:
- return state;
- }
-};
-
-export default firebase;