From f3ac8951996d401ae75f4b7d91af95d897888e04 Mon Sep 17 00:00:00 2001 From: Kyle Gill Date: Fri, 29 Mar 2019 11:03:44 -0600 Subject: [PATCH] feat: user page --- public/favicon.ico | Bin 3870 -> 16958 bytes public/index.html | 2 +- public/reactfavicon.ico | Bin 0 -> 3870 bytes src/App.js | 25 +++++++++++-- src/components/SignOut/SignOut.js | 28 +++++++++++++-- src/components/screens/User/User.js | 54 ++++++++++++++++++++-------- 6 files changed, 89 insertions(+), 20 deletions(-) create mode 100644 public/reactfavicon.ico diff --git a/public/favicon.ico b/public/favicon.ico index a11777cc471a4344702741ab1c8a588998b1311a..18add62c1747c55d2fc090174e988e2bcaf48eea 100644 GIT binary patch literal 16958 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 MuUC|)&$o5|H#hQ$KL7v# literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/public/index.html b/public/index.html index 9493bee..0dc662b 100644 --- a/public/index.html +++ b/public/index.html @@ -26,7 +26,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - React App + Sol Journal diff --git a/public/reactfavicon.ico b/public/reactfavicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/src/App.js b/src/App.js index 9c08a2b..9cc38cd 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,6 @@ import React, { Component } from "react" import { BrowserRouter as Router, Route } from "react-router-dom" +import { compose } from "recompose" import styled from "@emotion/styled" import { ThemeProvider } from "emotion-theming" @@ -15,6 +16,7 @@ import Login from "./components/screens/Login" import Register from "./components/screens/Register" import { withAuthentication } from "./components/session" +import { withFirebase } from "./components/firebase" const RouteLayout = styled.div` display: flex; @@ -30,7 +32,10 @@ const RouteLayout = styled.div` class App extends Component { state = { authUser: JSON.parse(localStorage.getItem("authUser")), - selectedTheme: "LIGHT", + selectedTheme: + new Date().getHours() >= 7 && new Date().getHours() <= 21 + ? "LIGHT" + : "DARK", } onChangeTheme = () => { @@ -44,6 +49,19 @@ 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 } = this.state @@ -74,4 +92,7 @@ class App extends Component { } } -export default withAuthentication(App) +export default compose( + withAuthentication, + withFirebase +)(App) diff --git a/src/components/SignOut/SignOut.js b/src/components/SignOut/SignOut.js index c424e06..0632e57 100644 --- a/src/components/SignOut/SignOut.js +++ b/src/components/SignOut/SignOut.js @@ -1,11 +1,33 @@ import React from "react" +import { compose } from "recompose" +import styled from "@emotion/styled" +import { withTheme } from "emotion-theming" import { withFirebase } from "../firebase" +const Button = styled.button` + background-color: ${props => props.theme.colors.headerBackground}; + padding: 10px 50px; + height: 40px; + border-radius: 5px; + border: 0px solid; + border-color: ${props => props.theme.colors.quarternary}; + color: ${props => props.theme.colors.secondary}; + font-size: 14px; + font-weight: 700; + &:hover { + cursor: pointer; + background-color: ${props => props.theme.colors.hover}; + } +` + const SignOutButton = ({ firebase }) => ( - + ) -export default withFirebase(SignOutButton) +export default compose( + withTheme, + withFirebase +)(SignOutButton) diff --git a/src/components/screens/User/User.js b/src/components/screens/User/User.js index 9756e41..1d5e512 100644 --- a/src/components/screens/User/User.js +++ b/src/components/screens/User/User.js @@ -1,8 +1,34 @@ import React from "react" +import styled from "@emotion/styled" +import { compose } from "recompose" import { withFirebase } from "../../firebase" +import { withAuthentication } from "../../session" + +import { SIZES } from "../../../styles/constants" import SignOut from "../../SignOut" +const ProfileGrid = styled.div` + display: grid; + grid-template-rows: 1fr; + grid-gap: 20px; +` +const ProfileSection = styled.div` + display: flex; + width: 100%; + align-items: center; + justify-content: space-between; + padding: 10px 0; +` +const ProfileSectionHeader = styled.h2` + font-size: ${SIZES.normal}; + color: ${props => props.theme.colors.tertiary}; +` +const ProfileSectionText = styled.span` + font-size: ${SIZES.normal}; + color: ${props => props.theme.colors.secondary}; +` + class User extends React.Component { state = { name: "", @@ -28,22 +54,22 @@ class User extends React.Component { } render() { + const { authUser } = this.props return ( - - -
- - -
-
+ + + + User: {authUser.email} + + + + {/* Export Entries */} + ) } } -export default withFirebase(User) +export default compose( + withFirebase, + withAuthentication +)(User)