From 9242d213eb985ab579c7315d2286381df980f82b Mon Sep 17 00:00:00 2001 From: hoon610 <123856266+hoon610@users.noreply.github.com> Date: Thu, 5 Oct 2023 23:19:37 -0400 Subject: [PATCH] Update devdependencies --- .firebase/hosting.YnVpbGQ.cache | 19 +++--- package-lock.json | 28 ++++++++- package.json | 3 + src/Header.js | 77 +++++++++++------------ src/Login.css | 7 +++ src/Login.js | 89 +++++++++++++++------------ src/MessageSender.js | 105 ++++++++++++++++++-------------- src/assets/logo.png | Bin 0 -> 6924 bytes src/assets/logo1.png | Bin 0 -> 14830 bytes 9 files changed, 192 insertions(+), 136 deletions(-) create mode 100644 src/assets/logo.png create mode 100644 src/assets/logo1.png diff --git a/.firebase/hosting.YnVpbGQ.cache b/.firebase/hosting.YnVpbGQ.cache index a98ddd5..48bb16f 100644 --- a/.firebase/hosting.YnVpbGQ.cache +++ b/.firebase/hosting.YnVpbGQ.cache @@ -3,12 +3,13 @@ logo192.png,1696095925005,3ee59515172ee198f3be375979df15ac5345183e656720a381b887 logo512.png,1696095925032,ee7e2f3fdb8209c4b6fd7bef6ba50d1b9dba30a25bb5c3126df057e1cb6f5331 manifest.json,1696095924880,aff3449bdc238776f5d6d967f19ec491b36aed5fb7f23ccff6500736fd58494a robots.txt,1696095925088,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49 -asset-manifest.json,1696199733846,08e47d03ebb4774602f8901ea785ecb4b932f98e13a2f4ab24f4bec1770a9362 -index.html,1696199733846,467e4605f5f554c132ab03031a4416a00d2233d7f44a36d4ad4c598bc3d7bd92 -static/css/main.d3e7513f.css,1696199733861,58eb18c5ec604c3d163ed0f3ae80d2f186521e0a7e85e920045add352716e14c -static/js/787.c9af9561.chunk.js,1696199733861,b7e8270026b67559fd3ab1d52eec9189b683a40e2c95a24bd6adfbcb2e017da9 -static/css/main.d3e7513f.css.map,1696199733861,d9e981f1eeed0b0e070449b09d90a0ec34d0e229cbcc030246baeeb324f92220 -static/js/main.aaaec4ca.js.LICENSE.txt,1696199733861,62ab455d56d208fdf0a3c6e2f9fc69be5b54333ce8313b5e485f22d75dabbba5 -static/js/787.c9af9561.chunk.js.map,1696199733861,8b1b58fa9842356515295aa4116fecc978469857dca9c450dedc1b753a62e3b0 -static/js/main.aaaec4ca.js,1696199733861,0ea555bce02e6ce92ecac5fcc325c7161ecc77fa2ab1d6355b4096742ad765d6 -static/js/main.aaaec4ca.js.map,1696199733862,ef0793737a5cf4b5f98385dd37b070e524aca3f0c7e2a834ea960d7cc52a8a5e +asset-manifest.json,1696561518562,6529f9f47bcd3d97c96d6bc78b3e9b060641ae01fa9165df65b6892066ede3fb +index.html,1696561518562,e80f394a46c852e2e22dfbadc7cc24d56799c269a4f6b47921aa109878af5544 +static/css/main.e81cd919.css,1696561518572,a62de4de3d16d2cf9343fb970321db4548839e94e94c934869fe19b6310d6f98 +static/js/787.c9af9561.chunk.js,1696561518574,b7e8270026b67559fd3ab1d52eec9189b683a40e2c95a24bd6adfbcb2e017da9 +static/css/main.e81cd919.css.map,1696561518572,2ece3480dd63ff5ae994b80910d64e0cc754f940786158a54e135ac65c5933ba +static/js/main.303cc6a5.js.LICENSE.txt,1696561518572,62ab455d56d208fdf0a3c6e2f9fc69be5b54333ce8313b5e485f22d75dabbba5 +static/js/787.c9af9561.chunk.js.map,1696561518574,8b1b58fa9842356515295aa4116fecc978469857dca9c450dedc1b753a62e3b0 +static/media/logo1.5f8343f11bc51187de6b.png,1696561518572,b81eb8b09e10ac213b31121ec98921ba9fca4a52bdfbceac63be619775be2a3d +static/js/main.303cc6a5.js,1696561518574,dae0d61dd3a57b9a7c4fd4cc666267272ae931f44a30ed51dbb79604ce80e0b0 +static/js/main.303cc6a5.js.map,1696561518575,d5ccd1b80890a4d1a91119fab198d390fdfecde7e225417c5b2b947ca162b3af diff --git a/package-lock.json b/package-lock.json index 0b2692d..c4c06fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,9 @@ "react-dom": "^18.2.0", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -768,9 +771,17 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, "engines": { "node": ">=6.9.0" }, @@ -2013,6 +2024,17 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", diff --git a/package.json b/package.json index bc588a0..785f50d 100644 --- a/package.json +++ b/package.json @@ -39,5 +39,8 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" } } diff --git a/src/Header.js b/src/Header.js index 8fd2de6..0fbbea6 100644 --- a/src/Header.js +++ b/src/Header.js @@ -1,71 +1,72 @@ -import React from 'react' -import "./Header.css" -import SearchIcon from '@mui/icons-material/Search'; -import HomeIcon from '@mui/icons-material/Home'; -import FlagIcon from '@mui/icons-material/Flag'; -import SubscriptionsOutlinedIcon from '@mui/icons-material/SubscriptionsOutlined'; -import StorefrontOutlinedIcon from '@mui/icons-material/StorefrontOutlined'; -import SupervisedUserCircleIcon from '@mui/icons-material/SupervisedUserCircle'; -import { Avatar } from '@mui/material'; -import { IconButton } from '@mui/material'; -import AddIcon from '@mui/icons-material/Add'; -import ForumIcon from '@mui/icons-material/Forum'; -import NotificationsActiveIcon from '@mui/icons-material/NotificationsActive'; -import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; -import { useStateValue } from './StateProvider'; - +import React from "react"; +import "./Header.css"; +import SearchIcon from "@mui/icons-material/Search"; +import HomeIcon from "@mui/icons-material/Home"; +import FlagIcon from "@mui/icons-material/Flag"; +import SubscriptionsOutlinedIcon from "@mui/icons-material/SubscriptionsOutlined"; +import StorefrontOutlinedIcon from "@mui/icons-material/StorefrontOutlined"; +import SupervisedUserCircleIcon from "@mui/icons-material/SupervisedUserCircle"; +import { Avatar } from "@mui/material"; +import { IconButton } from "@mui/material"; +import AddIcon from "@mui/icons-material/Add"; +import ForumIcon from "@mui/icons-material/Forum"; +import NotificationsActiveIcon from "@mui/icons-material/NotificationsActive"; +import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; +import { useStateValue } from "./StateProvider"; +import logo1 from "./assets/logo1.png"; function Header() { - const [{user}, dispatch] = useStateValue(); + const [{ user }, dispatch] = useStateValue(); return ( -
+
- facebook logo + facebook logo
- - + +
-
-
- +
+
- +
- +
- +
- +
-
+
- -

{user.displayName}

+ +

{user.displayName}

- + - + - + - +
- ) + ); } -export default Header +export default Header; diff --git a/src/Login.css b/src/Login.css index de4d068..3d36c55 100644 --- a/src/Login.css +++ b/src/Login.css @@ -7,6 +7,7 @@ .login > div > img { object-fit: contain; height: 150px; + max-width: 200px; } .login > div > button { width: 300px; @@ -26,4 +27,10 @@ } .login{ text-align: center; +} +.login__logo{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } \ No newline at end of file diff --git a/src/Login.js b/src/Login.js index 9bcb8b2..bc0a393 100644 --- a/src/Login.js +++ b/src/Login.js @@ -1,52 +1,63 @@ -import React from 'react' -import "./Login.css" -import { Button } from '@mui/material' -import { auth, provider } from './firebase' -import { useStateValue } from './StateProvider' -import { actionTypes } from './reducer' +import React from "react"; +import "./Login.css"; +import { Button } from "@mui/material"; +import { auth, provider } from "./firebase"; +import { useStateValue } from "./StateProvider"; +import { actionTypes } from "./reducer"; +import logo from "./assets/logo.png"; +import logo1 from "./assets/logo1.png"; function Login() { - const [state, dispatch] = useStateValue(); + const [state, dispatch] = useStateValue(); - const signIn = () => { - auth.signInWithPopup(provider) - .then(result => { - dispatch({ - type: actionTypes.SET_USER, - user: result.user - }) - console.log(result) - }).catch(error=> alert(error.message)) - } - const signInGuest = () => { + const signIn = () => { + auth + .signInWithPopup(provider) + .then((result) => { dispatch({ - type: actionTypes.SET_USER, - user: { - displayName: "Guest" - }, - }) - } + type: actionTypes.SET_USER, + user: result.user, + }); + console.log(result); + }) + .catch((error) => alert(error.message)); + }; + const signInGuest = () => { + dispatch({ + type: actionTypes.SET_USER, + user: { + displayName: "Guest", + }, + }); + }; return ( -
-
- logo - -

Clone!

-

by Hoon Kang - GitHub -

-
-
+
+
+ logo + + +

+ by Hoon Kang{" "} + + GitHub + +

+
+
-
+
- ) + ); } -export default Login +export default Login; diff --git a/src/MessageSender.js b/src/MessageSender.js index f0da3c7..d69d12b 100644 --- a/src/MessageSender.js +++ b/src/MessageSender.js @@ -1,70 +1,81 @@ -import React, { useState } from 'react'; -import "./MessageSender.css" -import { Avatar } from '@mui/material' -import VideocamIcon from '@mui/icons-material/Videocam'; -import PhotoLibraryIcon from '@mui/icons-material/PhotoLibrary'; -import InsertEmoticonIcon from '@mui/icons-material/InsertEmoticon'; -import { useStateValue } from './StateProvider'; -import db from "./firebase" -import firebase from 'firebase/compat/app'; -import 'firebase/compat/firestore'; -import { getFirestore, serverTimestamp } from 'firebase/firestore'; // Import serverTimestamp +import React, { useState } from "react"; +import "./MessageSender.css"; +import { Avatar } from "@mui/material"; +import VideocamIcon from "@mui/icons-material/Videocam"; +import PhotoLibraryIcon from "@mui/icons-material/PhotoLibrary"; +import InsertEmoticonIcon from "@mui/icons-material/InsertEmoticon"; +import { useStateValue } from "./StateProvider"; +import db from "./firebase"; +import "firebase/compat/firestore"; +import { serverTimestamp } from "firebase/firestore"; // Import serverTimestamp function MessageSender() { - const [{user}, dispatch] = useStateValue(); - const [input, setInput] = useState("") - const [imageUrl, setImageUrl] = useState("") - const MAX_CHARACTERS = 350; + const [{ user }, dispatch] = useStateValue(); + const [input, setInput] = useState(""); + const [imageUrl, setImageUrl] = useState(""); + const MAX_CHARACTERS = 350; - const handleSubmit = e => { - e.preventDefault(); + const handleSubmit = (e) => { + e.preventDefault(); - if (input.length > MAX_CHARACTERS) { - alert(`Character limit exceeded. Maximum ${MAX_CHARACTERS} characters allowed.`); - return; - } - db.collection('posts').add({ - message: input, - timestamp: serverTimestamp(), - profilePic: user.photoURL|| 'https://cdn0.iconfinder.com/data/icons/online-shop-equitment-gliph/32/line-2_on_going_logo-02-512.png', - username: user.displayName || 'Guest', - image: imageUrl - }) + if (input.length > MAX_CHARACTERS) { + alert( + `Character limit exceeded. Maximum ${MAX_CHARACTERS} characters allowed.` + ); + return; + } + db.collection("posts").add({ + message: input, + timestamp: serverTimestamp(), + profilePic: + user.photoURL || + "https://cdn0.iconfinder.com/data/icons/online-shop-equitment-gliph/32/line-2_on_going_logo-02-512.png", + username: user.displayName || "Guest", + image: imageUrl, + }); - setInput("") - setImageUrl("") - }; + setInput(""); + setImageUrl(""); + }; return ( -
+
- -
- setInput(e.target.value)} className='messageSender__input' placeholder={`What's on you mind, ${user.displayName}?`}type="text" /> - setImageUrl(e.target.value)} - - placeholder={'Image URL (Optional)'}type="text" /> - -
+ +
- +

Live Video

- +

Photo/Video

- +

Feeling/Activity

- ) + ); } -export default MessageSender +export default MessageSender; diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1a892da1f14813a01dce282943be565858367b6e GIT binary patch literal 6924 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo1.png b/src/assets/logo1.png new file mode 100644 index 0000000000000000000000000000000000000000..f7b9dedffd9ebe34f6c76c62cafa91e1a1c49c8e GIT binary patch literal 14830 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