/** @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 { html } from '@polymer/lit-element'; import { PageViewElement } from './page-view-element.js'; import { connect } from 'pwa-helpers/connect-mixin.js'; // This element is connected to the Redux store. import { store } from '../store.js'; //These are the actions needed by this element. import { signIn, signOut, requestHours, createAccount } from '../actions/firebase.js'; // We are lazy loading its reducer. import firebase from '../reducers/firebase.js'; store.addReducers({ firebase }); // These are the shared styles needed by this element. import { SharedStyles } from './shared-styles.js'; import { ButtonSharedStyles } from './button-shared-styles.js' // Import paper elements import '@polymer/paper-input/paper-input.js'; import '@polymer/paper-card/paper-card.js'; import '@polymer/paper-slider/paper-slider.js'; import '@polymer/paper-button/paper-button.js'; class MaoAccount extends connect(store)(PageViewElement) { _render(props) { return html` ${SharedStyles} ${ButtonSharedStyles}
`; } static get properties() { return { // This is the data from the store. signedIn: Boolean, authMessage: String, userEmail: String, registeredComps: Array }} _stateChanged(state) { this.signedIn = state.firebase.initialized; this.authMessage = state.firebase.authMessage; this.userEmail = state.firebase.userEmail; this.registeredComps = state.firebase.registeredComps; this.createCompetitionList( this.registeredComps); } logIn() { if(this.shadowRoot) { var emailElement = this.shadowRoot.getElementById('emailField'); var passwordElement = this.shadowRoot.getElementById('passwordField'); const email = emailElement.value + "@communityschoolnaples.org"; const password = passwordElement.value; store.dispatch(signIn(email,password,null)); emailElement.value = ""; passwordElement.value = ""; } } createCompetitionList(comps) { if(this.shadowRoot) { var listArea = this.shadowRoot.getElementById('competition-list'); listArea.innerHTML = ""; var mainDiv = document.createElement('div'); mainDiv.role = "listbox"; for(var i = 0; i < comps.length; i++) { var competitionElement = document.createElement('p'); competitionElement.innerHTML = comps[i]; competitionElement.class = "center"; mainDiv.appendChild( competitionElement); } listArea.appendChild(mainDiv); } } makeAccount() { var emailElement = this.shadowRoot.getElementById('createEmailField'); var passwordElement = this.shadowRoot.getElementById('createPasswordField'); var divisionElement = this.shadowRoot.getElementById('createDivisionField'); if( emailElement.value.includes('2019') || emailElement.value.includes('2020') ) { const email = emailElement.value + "@communityschoolnaples.org"; const password = passwordElement.value; const division = divisionElement.value; store.dispatch(createAccount(email,password,division)); } else { alert('Please use a validated email.'); } emailElement.value = ""; passwordElement.value = ""; divisionElement.value = ""; } } window.customElements.define('mao-account', MaoAccount);