aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Foiani <mfoiani2019@communityschoolnaples.org>2018-07-26 00:31:25 -0400
committerMichael Foiani <mfoiani2019@communityschoolnaples.org>2018-07-26 00:31:25 -0400
commitf0815df6642642db3e5063b6800d2ed0f681754c (patch)
tree54fe65f3ddcffcc2c0524c64bf8e54a66c97779e
parent2b253a35d7f33a256cf52d555ce5ca39206c7bb2 (diff)
Created basic login system using firebase and redux.
-rw-r--r--index.html3
-rw-r--r--package-lock.json327
-rw-r--r--package.json2
-rw-r--r--src/actions/firebase.js30
-rw-r--r--src/components/mao-home.js54
-rw-r--r--src/firebase.js11
-rw-r--r--src/reducers/firebase.js36
7 files changed, 368 insertions, 95 deletions
diff --git a/index.html b/index.html
index 74ba23e..00b9a94 100644
--- a/index.html
+++ b/index.html
@@ -65,6 +65,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<!-- Performance tip: hint to the browser to start the handshake for the fonts site -->
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
+
+ <script src="https://www.gstatic.com/firebasejs/5.3.0/firebase.js"></script>
+
<script>
// Load and register pre-caching Service Worker
if ('serviceWorker' in navigator) {
diff --git a/package-lock.json b/package-lock.json
index 18479b8..d0c079f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
{
- "name": "csn-mao-app",
+ "name": "pwa-starter-kit",
"version": "0.8.0",
"lockfileVersion": 1,
"requires": true,
@@ -904,6 +904,57 @@
"integrity": "sha512-n45zYqDfZUKBiM+Nj0jU6An2xEP5avKKdsl8ecgh2PbA0I0lamEExs0BmHfD4Br+lJDNbbDEVsUMDlrqNqcceg==",
"dev": true
},
+ "@polymer/font-roboto": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/font-roboto/-/font-roboto-3.0.0-pre.21.tgz",
+ "integrity": "sha512-1DnYDaoyTeSmZzocj7jhHS8tM1j+FJNTrMEOyudLKF8sqGzmlz48XyMRbt4RL4pO9szz5vJ8xhS+4WUPHFj9OA=="
+ },
+ "@polymer/iron-a11y-announcer": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.0.0-pre.21.tgz",
+ "integrity": "sha512-n35ck7y5aQweRxK2JvEe7sFE/LbUd/b5EW8tYPa/96iZw1qcTHWtIKdMJjDH18YroKVFH4Ncz4/0Xg7GChLhvA==",
+ "requires": {
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/iron-a11y-keys-behavior": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.0-pre.21.tgz",
+ "integrity": "sha512-fdADeKVQsZ7Izg5H6pOM9VVFWMTVUGgMfGr6jzEW0ehZT6N7bTzBIjft2r8sh3qSx2zCUxQEgUUDoeXE9/yROA==",
+ "requires": {
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/iron-autogrow-textarea": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-autogrow-textarea/-/iron-autogrow-textarea-3.0.0-pre.21.tgz",
+ "integrity": "sha512-sMpNcSeq0lR54y4K+tWbK6WI1e8Fbl7JRXWfIOFQuggzKRQf/snSpTTJicgGRgDmctt7kNQOh/r1XQelLdPcZg==",
+ "requires": {
+ "@polymer/iron-behaviors": "3.0.0-pre.21",
+ "@polymer/iron-flex-layout": "3.0.0-pre.21",
+ "@polymer/iron-validatable-behavior": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/iron-behaviors": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-behaviors/-/iron-behaviors-3.0.0-pre.21.tgz",
+ "integrity": "sha512-sxdLri6CMNs6kty8sPDYGuAX9LofbEn2r/qI3QkJZUXFZhZUSGwCmoDt9yMWffNSamUsEDURLafYW09jOEhtRQ==",
+ "requires": {
+ "@polymer/iron-a11y-keys-behavior": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/iron-checked-element-behavior": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-checked-element-behavior/-/iron-checked-element-behavior-3.0.0-pre.21.tgz",
+ "integrity": "sha512-ZpyKomXudcOM1vGvfqwFkrlTumChStbNy5rRFKbdCbsUeZsXV83LIHfkXxMhJJ5hEIExvK4pDcnv/wEdFggXPQ==",
+ "requires": {
+ "@polymer/iron-form-element-behavior": "3.0.0-pre.21",
+ "@polymer/iron-validatable-behavior": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
"@polymer/iron-flex-layout": {
"version": "3.0.0-pre.21",
"resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.0-pre.21.tgz",
@@ -912,6 +963,24 @@
"@polymer/polymer": "3.0.2"
}
},
+ "@polymer/iron-form-element-behavior": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-form-element-behavior/-/iron-form-element-behavior-3.0.0-pre.21.tgz",
+ "integrity": "sha512-E9oS0ryZw7FPQ/XMmBaKScyv8l/z86kKpIfXm+WLbqapu5FIuNE54z/73QUs5uoKI+H8gR9UL48mzZGCiGEMDw==",
+ "requires": {
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/iron-input": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-input/-/iron-input-3.0.0-pre.21.tgz",
+ "integrity": "sha512-76XxEoP6rugsEma+V1nIV8Nd76hqhseQ+bBf6Sgda69bUvanxCmVs4TOVXSnh3SnfptBUfENVws3akJKrTgoLg==",
+ "requires": {
+ "@polymer/iron-a11y-announcer": "3.0.0-pre.21",
+ "@polymer/iron-validatable-behavior": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
"@polymer/iron-media-query": {
"version": "3.0.0-pre.21",
"resolved": "https://registry.npmjs.org/@polymer/iron-media-query/-/iron-media-query-3.0.0-pre.21.tgz",
@@ -920,6 +989,14 @@
"@polymer/polymer": "3.0.2"
}
},
+ "@polymer/iron-meta": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.0-pre.21.tgz",
+ "integrity": "sha512-RR24zD2t4rSJyjisMo5Cfy200FFYrsmRDZSX8wk1JdaDHVWLgq9DM1aa7/B7WI7sEWkckzVZPBthRFVB+PmVwA==",
+ "requires": {
+ "@polymer/polymer": "3.0.2"
+ }
+ },
"@polymer/iron-resizable-behavior": {
"version": "3.0.0-pre.21",
"resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.0-pre.21.tgz",
@@ -936,6 +1013,15 @@
"@polymer/polymer": "3.0.2"
}
},
+ "@polymer/iron-validatable-behavior": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/iron-validatable-behavior/-/iron-validatable-behavior-3.0.0-pre.21.tgz",
+ "integrity": "sha512-G4yxCe2xp9+jJ0MkjqC26MKo1FqsvUrnmqpCtJiVBLlpZEUx1b2lZz2ZzynXpnisg9EuZ3xtHtOge5UFTNoG+w==",
+ "requires": {
+ "@polymer/iron-meta": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
"@polymer/lit-element": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@polymer/lit-element/-/lit-element-0.5.2.tgz",
@@ -945,6 +1031,61 @@
"lit-html": "0.10.2"
}
},
+ "@polymer/paper-behaviors": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/paper-behaviors/-/paper-behaviors-3.0.0-pre.21.tgz",
+ "integrity": "sha512-CiS/1K9b+b5qxpykr5P/ZeO5le06H7aaR/ymPWJ/m0ioFcSyzRPWlEwjDwiqqCBCmwmdsLXvLYmB2Z6oLiXqPQ==",
+ "requires": {
+ "@polymer/iron-behaviors": "3.0.0-pre.21",
+ "@polymer/iron-checked-element-behavior": "3.0.0-pre.21",
+ "@polymer/paper-ripple": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/paper-button": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/paper-button/-/paper-button-3.0.0-pre.21.tgz",
+ "integrity": "sha512-V4GBy/3MK0uA3XRwds87XxCCGVUdsSi4gzCw4wBXtJdPF/nUr/mWPgUcQO7bx4Yz7Bih7PxYcRPSPN5lucMjRw==",
+ "requires": {
+ "@polymer/iron-flex-layout": "3.0.0-pre.21",
+ "@polymer/paper-behaviors": "3.0.0-pre.21",
+ "@polymer/paper-styles": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/paper-input": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/paper-input/-/paper-input-3.0.0-pre.21.tgz",
+ "integrity": "sha512-xBRiy9QHS47Yfkv+242qRr1KFvoI1t7VS6kl+fr/pF3fS4WCT4T0oNOaDoOaj7iMmGSRPOgE2Y2+0FC0pl2yIw==",
+ "requires": {
+ "@polymer/iron-a11y-keys-behavior": "3.0.0-pre.21",
+ "@polymer/iron-autogrow-textarea": "3.0.0-pre.21",
+ "@polymer/iron-behaviors": "3.0.0-pre.21",
+ "@polymer/iron-form-element-behavior": "3.0.0-pre.21",
+ "@polymer/iron-input": "3.0.0-pre.21",
+ "@polymer/paper-styles": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/paper-ripple": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/paper-ripple/-/paper-ripple-3.0.0-pre.21.tgz",
+ "integrity": "sha512-qqNdU1/57WtMr+3NiAVI2zXw4LrEX9QD9jwifIgJXWj+lqe0YMeKrXOvCYHvV8nv9Owq7dRGvhOXM++E+imoLQ==",
+ "requires": {
+ "@polymer/iron-a11y-keys-behavior": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
+ "@polymer/paper-styles": {
+ "version": "3.0.0-pre.21",
+ "resolved": "https://registry.npmjs.org/@polymer/paper-styles/-/paper-styles-3.0.0-pre.21.tgz",
+ "integrity": "sha512-GJB0EirkY17N05kbTMDa8aABvQ2GIE95LMt7aOy16VG6sjh1TFS0gUOnoGgHA7ZUUZsOP3BdNqxKYzgQ+9m/GA==",
+ "requires": {
+ "@polymer/font-roboto": "3.0.0-pre.21",
+ "@polymer/iron-flex-layout": "3.0.0-pre.21",
+ "@polymer/polymer": "3.0.2"
+ }
+ },
"@polymer/polymer": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.0.2.tgz",
@@ -4003,7 +4144,7 @@
"bundled": true,
"dev": true,
"requires": {
- "balanced-match": "^1.0.0",
+ "balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@@ -4118,7 +4259,7 @@
"dev": true,
"optional": true,
"requires": {
- "safer-buffer": "^2.1.0"
+ "safer-buffer": "2.1.2"
}
},
"ignore-walk": {
@@ -4127,7 +4268,7 @@
"dev": true,
"optional": true,
"requires": {
- "minimatch": "^3.0.4"
+ "minimatch": "3.0.4"
}
},
"inflight": {
@@ -4156,7 +4297,7 @@
"bundled": true,
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"isarray": {
@@ -4170,7 +4311,7 @@
"bundled": true,
"dev": true,
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -4216,9 +4357,9 @@
"dev": true,
"optional": true,
"requires": {
- "debug": "^2.1.2",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
+ "debug": "2.6.9",
+ "iconv-lite": "0.4.21",
+ "sax": "1.2.4"
}
},
"node-pre-gyp": {
@@ -4245,8 +4386,8 @@
"dev": true,
"optional": true,
"requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
+ "abbrev": "1.1.1",
+ "osenv": "0.1.5"
}
},
"npm-bundled": {
@@ -4261,8 +4402,8 @@
"dev": true,
"optional": true,
"requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
+ "ignore-walk": "3.0.1",
+ "npm-bundled": "1.0.3"
}
},
"npmlog": {
@@ -4314,8 +4455,8 @@
"dev": true,
"optional": true,
"requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
}
},
"path-is-absolute": {
@@ -4414,9 +4555,9 @@
"bundled": true,
"dev": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
}
},
"string_decoder": {
@@ -4425,7 +4566,7 @@
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.1"
}
},
"strip-ansi": {
@@ -4433,7 +4574,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"strip-json-comments": {
@@ -12651,8 +12792,8 @@
"dev": true,
"optional": true,
"requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.6"
}
},
"balanced-match": {
@@ -12741,7 +12882,7 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "^2.2.1"
+ "minipass": "2.2.4"
}
},
"fs.realpath": {
@@ -12758,14 +12899,14 @@
"dev": true,
"optional": true,
"requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
}
},
"glob": {
@@ -12775,12 +12916,12 @@
"dev": true,
"optional": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
}
},
"has-unicode": {
@@ -12797,7 +12938,7 @@
"dev": true,
"optional": true,
"requires": {
- "safer-buffer": "^2.1.0"
+ "safer-buffer": "2.1.2"
}
},
"ignore-walk": {
@@ -12817,8 +12958,8 @@
"dev": true,
"optional": true,
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
}
},
"inherits": {
@@ -12840,7 +12981,7 @@
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"isarray": {
@@ -12871,8 +13012,8 @@
"integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==",
"dev": true,
"requires": {
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.0"
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
}
},
"minizlib": {
@@ -12882,7 +13023,7 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "^2.2.1"
+ "minipass": "2.2.4"
}
},
"mkdirp": {
@@ -12908,9 +13049,9 @@
"dev": true,
"optional": true,
"requires": {
- "debug": "^2.1.2",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
+ "debug": "2.6.9",
+ "iconv-lite": "0.4.21",
+ "sax": "1.2.4"
}
},
"node-pre-gyp": {
@@ -12920,16 +13061,16 @@
"dev": true,
"optional": true,
"requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.0",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.1.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
+ "detect-libc": "1.0.3",
+ "mkdirp": "0.5.1",
+ "needle": "2.2.0",
+ "nopt": "4.0.1",
+ "npm-packlist": "1.1.10",
+ "npmlog": "4.1.2",
+ "rc": "1.2.7",
+ "rimraf": "2.6.2",
+ "semver": "5.5.0",
+ "tar": "4.4.1"
}
},
"nopt": {
@@ -12939,8 +13080,8 @@
"dev": true,
"optional": true,
"requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
+ "abbrev": "1.1.1",
+ "osenv": "0.1.5"
}
},
"npm-bundled": {
@@ -12957,8 +13098,8 @@
"dev": true,
"optional": true,
"requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
+ "ignore-walk": "3.0.1",
+ "npm-bundled": "1.0.3"
}
},
"npmlog": {
@@ -12968,10 +13109,10 @@
"dev": true,
"optional": true,
"requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
}
},
"number-is-nan": {
@@ -12993,7 +13134,7 @@
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
- "wrappy": "1"
+ "wrappy": "1.0.2"
}
},
"os-homedir": {
@@ -13017,8 +13158,8 @@
"dev": true,
"optional": true,
"requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
}
},
"path-is-absolute": {
@@ -13042,10 +13183,10 @@
"dev": true,
"optional": true,
"requires": {
- "deep-extend": "^0.5.1",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
+ "deep-extend": "0.5.1",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
@@ -13064,13 +13205,13 @@
"dev": true,
"optional": true,
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
}
},
"rimraf": {
@@ -13080,7 +13221,7 @@
"dev": true,
"optional": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "7.1.2"
}
},
"safe-buffer": {
@@ -13130,9 +13271,9 @@
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
}
},
"string_decoder": {
@@ -13142,7 +13283,7 @@
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.1"
}
},
"strip-ansi": {
@@ -13151,7 +13292,7 @@
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"strip-json-comments": {
@@ -13168,13 +13309,13 @@
"dev": true,
"optional": true,
"requires": {
- "chownr": "^1.0.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.2.4",
- "minizlib": "^1.1.0",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.2"
+ "chownr": "1.0.1",
+ "fs-minipass": "1.2.5",
+ "minipass": "2.2.4",
+ "minizlib": "1.1.0",
+ "mkdirp": "0.5.1",
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
}
},
"util-deprecate": {
@@ -13191,7 +13332,7 @@
"dev": true,
"optional": true,
"requires": {
- "string-width": "^1.0.2"
+ "string-width": "1.0.2"
}
},
"wrappy": {
diff --git a/package.json b/package.json
index bf1bd71..b3de73c 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,8 @@
"dependencies": {
"@polymer/app-layout": "^3.0.0-pre.21",
"@polymer/lit-element": "^0.5.2",
+ "@polymer/paper-button": "^3.0.0-pre.21",
+ "@polymer/paper-input": "^3.0.0-pre.21",
"@webcomponents/webcomponentsjs": "^2.0.0",
"pwa-helpers": "^0.8.2",
"redux": "^4.0.0",
diff --git a/src/actions/firebase.js b/src/actions/firebase.js
new file mode 100644
index 0000000..e13ab10
--- /dev/null
+++ b/src/actions/firebase.js
@@ -0,0 +1,30 @@
+import { firebase } from '../firebase.js';
+
+export const AUTH_FAIL = 'AUTH_FAIL';
+export const AUTH_SUCCESS = 'AUTH_SUCCESS';
+
+const auth = firebase.auth();
+
+export const signIn = (_email, _password) => (dispatch) => {
+ auth.signInWithEmailAndPassword(_email, _password).then((user) => {
+ dispatch(authSuccess(user.email));
+ })
+ .catch((error) => {
+ dispatch(authFail(error.code));
+ });
+
+}
+
+export const authFail = (errorCode) => {
+ return {
+ type: AUTH_FAIL,
+ payload: false
+ }
+}
+
+export const authSuccess = (email) => {
+ return {
+ type: AUTH_SUCCESS,
+ payload: true
+ }
+}
diff --git a/src/components/mao-home.js b/src/components/mao-home.js
index 468677f..f56d858 100644
--- a/src/components/mao-home.js
+++ b/src/components/mao-home.js
@@ -10,11 +10,29 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
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 } 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';
-class MaoHome extends PageViewElement {
+// Import paper elements
+import '@polymer/paper-input/paper-input.js';
+import '@polymer/paper-button/paper-button.js';
+
+class MaoHome extends connect(store)(PageViewElement) {
_render(props) {
return html`
${SharedStyles}
@@ -26,12 +44,44 @@ class MaoHome extends PageViewElement {
<section>
<h2>Welcome</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ac nisi orci. Maecenas sollicitudin diam in diam efficitur cursus. Morbi sollicitudin in justo tincidunt placerat. Integer tincidunt elementum nisi, eu ornare dolor lacinia eget. Fusce pulvinar massa eget odio placerat, commodo molestie ipsum tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse porttitor id purus eu cursus. Suspendisse arcu nulla, mattis vel hendrerit et, malesuada a elit. Nam at diam ornare, aliquet est sed, malesuada metus. Cras nec enim vel nibh tincidunt euismod ut et enim. Etiam pharetra eros in sodales iaculis. Duis sagittis urna et cursus mollis. Cras tempor rutrum est. Praesent sollicitudin ligula at laoreet placerat. Praesent tortor dui, semper in sapien non, pharetra luctus turpis.</p>
+
+
</section>
<section>
- <p>Vestibulum at est ex. Aenean id ligula id nibh dictum laoreet. Etiam non semper erat. Pellentesque eu justo rhoncus diam vulputate facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam feugiat metus ex, vel fringilla massa tincidunt sit amet. Nunc facilisis bibendum tristique. Mauris commodo, dolor vitae dapibus fermentum, odio nibh viverra lorem, eu cursus diam turpis et sapien. Nunc suscipit tortor a ligula tincidunt, id hendrerit tellus sollicitudin.</p>
+ <paper-input label="username" id="emailField">
+ <div slot="suffix">@communityschoolnaples.org</div>
+ </paper-input>
+
+ <paper-input label="password" id="passwordField">
+ </paper-input>
+
+ <paper-button disabled="${this.signedIn}" on-tap="${() => this.doSomething()}">Sign In</paper-button>
+ <paper-button raised on-tap="${() => this.status()}">Status</paper-button>
</section>
`;
}
+
+ static get properties() { return {
+ // This is the data from the store.
+ signedIn: Boolean,
+ }}
+
+ _stateChanged(state) {
+ this.signedIn = state.firebase.initialized;
+ }
+
+ doSomething() {
+ const email = this.shadowRoot.getElementById('emailField') .value +
+ '@communityschoolnaples.org';
+ const password = this.shadowRoot.getElementById('passwordField') .value;
+
+ store.dispatch(signIn(email,password));
+ }
+
+ status() {
+ alert(this.signedIn);
+ }
+
}
window.customElements.define('mao-home', MaoHome);
diff --git a/src/firebase.js b/src/firebase.js
new file mode 100644
index 0000000..bf62e37
--- /dev/null
+++ b/src/firebase.js
@@ -0,0 +1,11 @@
+export const firebase = window.firebase;
+// Initialize Firebase
+var config = {
+ apiKey: "AIzaSyC68wOeR88PPiw5VqzUYs7lm4ewyJgHf20",
+ authDomain: "csn-2019-site.firebaseapp.com",
+ databaseURL: "https://csn-2019-site.firebaseio.com",
+ projectId: "csn-2019-site",
+ storageBucket: "csn-2019-site.appspot.com",
+ messagingSenderId: "764071630447"
+};
+firebase.initializeApp(config);
diff --git a/src/reducers/firebase.js b/src/reducers/firebase.js
new file mode 100644
index 0000000..2c7ba56
--- /dev/null
+++ b/src/reducers/firebase.js
@@ -0,0 +1,36 @@
+/**
+@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_FAIL, AUTH_SUCCESS } from '../actions/firebase.js';
+
+const firebase = (state = {initialized: false}, action) => {
+ switch (action.type) {
+ case AUTH_SUCCESS:
+ alert(action.payload);
+ return {
+ ...state,
+ initialized: action.payload
+ };
+ break;
+
+ case AUTH_FAIL:
+ alert(action.payload);
+ return {
+ ...state,
+ initialized: action.payload
+ };
+ break;
+
+ default:
+ return state;
+ }
+};
+
+export default firebase;