diff --git a/gatsby-browser.js b/gatsby-browser.js index 4cba3d0..a096421 100644 --- a/gatsby-browser.js +++ b/gatsby-browser.js @@ -8,3 +8,8 @@ export const wrapRootElement = ({ element }) => ( {element} ) + +export const onRouteUpdate = ({ location, prevLocation }) => { + console.log("new pathname", location.pathname) + console.log("old pathname", prevLocation ? prevLocation.pathname : null) +} diff --git a/gatsby-config.js b/gatsby-config.js index 766912e..bce3fc4 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -1,5 +1,6 @@ module.exports = { plugins: [ + `gatsby-plugin-react-helmet`, `gatsby-plugin-offline`, { resolve: `gatsby-plugin-emotion`, diff --git a/package.json b/package.json index 20c995c..5952cbf 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,11 @@ "gatsby-plugin-emotion": "^4.0.6", "gatsby-plugin-offline": "^2.1.0", "gatsby-plugin-prefetch-google-fonts": "^1.4.2", + "gatsby-plugin-react-helmet": "^3.0.12", "react": "^16.8.4", "react-dom": "^16.8.4", "react-feather": "^1.1.6", + "react-helmet": "^5.2.1", "react-router-dom": "^5.0.0", "react-scripts": "2.1.8", "react-spinners": "^0.5.3", diff --git a/public/index.html b/public/index.html index 3c2e2db..870e20c 100644 --- a/public/index.html +++ b/public/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/src/App.js b/src/App.js index b6e7dd0..d0e91b0 100644 --- a/src/App.js +++ b/src/App.js @@ -12,9 +12,7 @@ import Day from "./components/screens/Day" import Month from "./components/screens/Month" import Year from "./components/screens/Year" import User from "./components/screens/User" -import Login from "./components/screens/Login" import Search from "./components/screens/Search" -import Register from "./components/screens/Register" import Welcome from "./components/screens/Welcome" import PrivateRoute from "./components/PrivateRoute" @@ -70,19 +68,6 @@ class App extends Component { this.setState({ selectedTheme: newTheme }) } - saveUserSettings = newTheme => { - const { authUser, firebase } = this.props - firebase.db - .collection("users") - .doc(authUser.uid) - .update({ - theme: newTheme, - }) - .then(function() { - console.log("Updated theme settings") - }) - } - render() { const { selectedTheme, authUser, online } = this.state const { authUser: propAuthUser } = this.props @@ -95,7 +80,7 @@ class App extends Component { - + - - - - {/* */} + diff --git a/src/components/Layout/Layout.js b/src/components/Layout/Layout.js index 9af8b9c..9eba965 100644 --- a/src/components/Layout/Layout.js +++ b/src/components/Layout/Layout.js @@ -1,13 +1,19 @@ import React from "react" +import { Helmet } from "react-helmet" import { Global, css } from "@emotion/core" import styled from "@emotion/styled" +import { SimpleNavbar } from "../Navbar" + export default ({ children }) => ( <> + ( {authUser ? ( - + - - + + - - + + - - + + - + toggleTheme()} @@ -93,19 +93,38 @@ const Navbar = ({ authUser, theme, toggleTheme }) => ( /> ) : ( - - {/* Landing */} - - - - {/* Register */} - + + + )} ) +const SimpleNav = ({ theme, toggleTheme }) => ( +
+ +
+) + +const SimpleNavbar = withTheme(SimpleNav) + +export { SimpleNavbar } + export default compose( withAuthentication, withTheme diff --git a/src/components/Navbar/index.js b/src/components/Navbar/index.js index 27f2a37..ed07819 100644 --- a/src/components/Navbar/index.js +++ b/src/components/Navbar/index.js @@ -1,2 +1,3 @@ -import Navbar from "./Navbar" +import Navbar, { SimpleNavbar } from "./Navbar" export default Navbar +export { SimpleNavbar } diff --git a/src/components/PrivateRoute/PrivateRoute.js b/src/components/PrivateRoute/PrivateRoute.js index 041f1f9..d878013 100644 --- a/src/components/PrivateRoute/PrivateRoute.js +++ b/src/components/PrivateRoute/PrivateRoute.js @@ -8,7 +8,7 @@ const PrivateRoute = ({ component: Component, authed, ...rest }) => { authed === true ? ( ) : ( - + ) } diff --git a/src/components/firebase/fire.js b/src/components/firebase/fire.js index 194bc6e..b7fb9e2 100644 --- a/src/components/firebase/fire.js +++ b/src/components/firebase/fire.js @@ -43,7 +43,7 @@ class Firebase { doSignOut = () => { this.auth.signOut() - window.location.replace("/app/login") + window.location.replace("/login") } doPasswordReset = email => this.auth.sendPasswordResetEmail(email) diff --git a/src/components/screens/Day/Day.js b/src/components/screens/Day/Day.js index d810c64..6ac14cf 100644 --- a/src/components/screens/Day/Day.js +++ b/src/components/screens/Day/Day.js @@ -17,6 +17,12 @@ import { SIZES } from "../../../styles/constants" import Seek from "../../Seek" import Icon from "../../Icon" +const Main = styled.main` + height: 100%; + display: flex; + flex-direction: column; + flex-grow: 1; +` const EntryHeading = styled.div` display: flex; flex-direction: row; @@ -58,6 +64,7 @@ const JournalEntryArea = styled.textarea` background-color: transparent; line-height: 1.5; letter-spacing: 0.5px; + height: calc(100vh - 275px); width: 100%; border: none; resize: none; diff --git a/src/components/screens/Login/index.js b/src/components/screens/Login/index.js deleted file mode 100644 index d114a4d..0000000 --- a/src/components/screens/Login/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import Login from "./Login" -export default Login diff --git a/src/components/screens/Register/index.js b/src/components/screens/Register/index.js deleted file mode 100644 index ebb6976..0000000 --- a/src/components/screens/Register/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import Register from "./Register" -export default Register diff --git a/src/index.css b/src/index.css deleted file mode 100644 index 134cd0a..0000000 --- a/src/index.css +++ /dev/null @@ -1,12 +0,0 @@ -* { - transition: 0.2s all ease-in-out; -} -body { - margin: 0; - padding: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/src/pages/index.js b/src/pages/index.js index 31876a8..8090515 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -1,10 +1,12 @@ import React from "react" +import { SimpleNavbar } from "../components/Navbar" import Index from "../components/screens/Start/index" import Layout from "../components/Layout" import Container from "../components/container" export default () => ( + diff --git a/src/components/screens/Login/Login.js b/src/pages/login.js similarity index 75% rename from src/components/screens/Login/Login.js rename to src/pages/login.js index c3866eb..18b107c 100644 --- a/src/components/screens/Login/Login.js +++ b/src/pages/login.js @@ -1,15 +1,15 @@ import React, { Component } from "react" -import { navigate } from "gatsby" +import { navigate, Link } from "gatsby" import styled from "@emotion/styled" import { compose } from "recompose" import { format } from "date-fns" import { withTheme } from "emotion-theming" -import { Input, Button, P } from "../../elements" -import { SIZES } from "../../../styles/constants" -import { StyledLink as Link } from "../../elements" - -import { FirebaseContext } from "../../firebase" +import { SimpleNavbar } from "../components/Navbar" +import { Input, Button, P } from "../components/elements" +import { SIZES } from "../styles/constants" +import Layout from "../components/Layout" +import { FirebaseContext } from "../components/firebase" const LoginGrid = styled.div` display: grid; @@ -19,19 +19,21 @@ const LoginGrid = styled.div` const LoginLayout = styled.div` max-width: ${SIZES.smallWidth}; width: 100%; - align-self: center; - margin-top: 20px; + margin: 20px auto; ` const LoginPage = ({ theme }) => ( - - - {firebase => } - -

- Don't have an account? Sign Up -

-
+ + + + + {firebase => } + +

+ Don't have an account? Sign Up +

+
+
) class LoginFormBase extends Component { diff --git a/src/components/screens/Register/Register.js b/src/pages/register.js similarity index 81% rename from src/components/screens/Register/Register.js rename to src/pages/register.js index 142398c..fd1ea72 100644 --- a/src/components/screens/Register/Register.js +++ b/src/pages/register.js @@ -1,14 +1,14 @@ import React, { Component } from "react" import styled from "@emotion/styled" -import { navigate } from "gatsby" +import { navigate, Link } from "gatsby" import { compose } from "recompose" import { withTheme } from "emotion-theming" -import { Input, Button, P } from "../../elements" -import { SIZES } from "../../../styles/constants" -import { StyledLink as Link } from "../../elements" - -import { FirebaseContext } from "../../firebase" +import { SimpleNavbar } from "../components/Navbar" +import { Input, Button, P } from "../components/elements" +import { SIZES } from "../styles/constants" +import Layout from "../components/Layout" +import { FirebaseContext } from "../components/firebase" const RegisterGrid = styled.div` display: grid; @@ -18,19 +18,21 @@ const RegisterGrid = styled.div` const RegisterLayout = styled.div` max-width: ${SIZES.smallWidth}; width: 100%; - align-self: center; - margin-top: 20px; + margin: 20px auto; ` const RegisterPage = ({ theme }) => ( - - - {firebase => } - -

- Already have an account? Login -

-
+ + + + + {firebase => } + +

+ Already have an account? Login +

+
+
) class RegisterFormBase extends Component { diff --git a/yarn.lock b/yarn.lock index ccf8949..0adab9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5501,6 +5501,11 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +exenv@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50= + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6284,6 +6289,13 @@ gatsby-plugin-prefetch-google-fonts@^1.4.2: google-fonts-plugin "2.0.2" object-hash "^1.3.0" +gatsby-plugin-react-helmet@^3.0.12: + version "3.0.12" + resolved "https://registry.yarnpkg.com/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-3.0.12.tgz#805252b54ea4044d286d2158991429aa4f60aa02" + integrity sha512-x1DXKceTuEDePN9HcQymzQ+oBgmT3PKVQLSFbxrOECiC71cQRp03FJK0i/ClAkMJ3IJNLCGJDvi7dKydkc6dvw== + dependencies: + "@babel/runtime" "^7.0.0" + gatsby-react-router-scroll@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.0.7.tgz#b9425e366d4be546036080d85664d60ae76e6c29" @@ -11176,7 +11188,7 @@ prompts@^2.0.4: kleur "^3.0.2" sisteransi "^1.0.0" -prop-types@^15.5.10, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -11473,11 +11485,26 @@ react-error-overlay@^5.1.4: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.4.tgz#88dfb88857c18ceb3b9f95076f850d7121776991" integrity sha512-fp+U98OMZcnduQ+NSEiQa4s/XMsbp+5KlydmkbESOw4P69iWZ68ZMFM5a2BuE0FgqPBKApJyRuYHR95jM8lAmg== +react-fast-compare@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + react-feather@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/react-feather/-/react-feather-1.1.6.tgz#2a547e3d5cd5e383d3da0128d593cbdb3c1b32f7" integrity sha512-iCofWhTjX+vQwvDmg7o6vg0XrUg1c41yBDZG+l83nz1FiCsleJoUgd3O+kHpOeWMXuPrRIFfCixvcqyOLGOgIg== +react-helmet@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-5.2.1.tgz#16a7192fdd09951f8e0fe22ffccbf9bb3e591ffa" + integrity sha512-CnwD822LU8NDBnjCpZ4ySh8L6HYyngViTZLfBBb3NjtrpN8m49clH8hidHouq20I51Y6TpCTISCBbqiY5GamwA== + dependencies: + object-assign "^4.1.1" + prop-types "^15.5.4" + react-fast-compare "^2.0.2" + react-side-effect "^1.1.0" + react-hot-loader@^4.6.2: version "4.8.4" resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.8.4.tgz#357ba342e367fd42d6a870a9c0601c23fa0730c6" @@ -11591,6 +11618,14 @@ react-scripts@2.1.8: optionalDependencies: fsevents "1.2.4" +react-side-effect@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.1.5.tgz#f26059e50ed9c626d91d661b9f3c8bb38cd0ff2d" + integrity sha512-Z2ZJE4p/jIfvUpiUMRydEVpQRf2f8GMHczT6qLcARmX7QRb28JDBTpnM2g/i5y/p7ZDEXYGHWg0RbhikE+hJRw== + dependencies: + exenv "^1.2.1" + shallowequal "^1.0.1" + react-spinners@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/react-spinners/-/react-spinners-0.5.3.tgz#b4fa956da9674f3300442cef10186de7d749099c" @@ -12354,7 +12389,7 @@ shallow-compare@^1.2.2: resolved "https://registry.yarnpkg.com/shallow-compare/-/shallow-compare-1.2.2.tgz#fa4794627bf455a47c4f56881d8a6132d581ffdb" integrity sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg== -shallowequal@^1.0.2: +shallowequal@^1.0.1, shallowequal@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==