From aa6c9b3165f12ec9896540c5a5bc2da1fda81046 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Sat, 16 Apr 2022 19:57:12 +0900 Subject: [PATCH] emotion diary : global settings --- emotiondiary/public/assets/emotion1.png | Bin 0 -> 3606 bytes emotiondiary/public/assets/emotion2.png | Bin 0 -> 3202 bytes emotiondiary/public/assets/emotion3.png | Bin 0 -> 2845 bytes emotiondiary/public/assets/emotion4.png | Bin 0 -> 3360 bytes emotiondiary/public/assets/emotion5.png | Bin 0 -> 3465 bytes emotiondiary/src/App.css | 103 +++++++++++++++++++++++- emotiondiary/src/App.js | 100 ++++++++++++++++++++++- emotiondiary/src/components/MyButton.js | 18 +++++ emotiondiary/src/components/MyHeader.js | 11 +++ emotiondiary/src/index.js | 6 +- emotiondiary/src/pages/Diary.js | 15 ++++ emotiondiary/src/pages/Edit.js | 24 ++++++ emotiondiary/src/pages/Home.js | 10 +++ emotiondiary/src/pages/New.js | 10 +++ 14 files changed, 289 insertions(+), 8 deletions(-) create mode 100644 emotiondiary/public/assets/emotion1.png create mode 100644 emotiondiary/public/assets/emotion2.png create mode 100644 emotiondiary/public/assets/emotion3.png create mode 100644 emotiondiary/public/assets/emotion4.png create mode 100644 emotiondiary/public/assets/emotion5.png create mode 100644 emotiondiary/src/components/MyButton.js create mode 100644 emotiondiary/src/components/MyHeader.js create mode 100644 emotiondiary/src/pages/Diary.js create mode 100644 emotiondiary/src/pages/Edit.js create mode 100644 emotiondiary/src/pages/Home.js create mode 100644 emotiondiary/src/pages/New.js diff --git a/emotiondiary/public/assets/emotion1.png b/emotiondiary/public/assets/emotion1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4dbd08e3126a8b41e6f7a7b5ef4190b6a9a7a12 GIT binary patch literal 3606 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 literal 0 HcmV?d00001 diff --git a/emotiondiary/public/assets/emotion3.png b/emotiondiary/public/assets/emotion3.png new file mode 100644 index 0000000000000000000000000000000000000000..88d353fae485e3e9094c643765a8c5d005bb72cc GIT binary patch literal 2845 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 literal 0 HcmV?d00001 diff --git a/emotiondiary/public/assets/emotion4.png b/emotiondiary/public/assets/emotion4.png new file mode 100644 index 0000000000000000000000000000000000000000..b152643edeaabe3c838341e23547bab6feb72e12 GIT binary patch literal 3360 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 literal 0 HcmV?d00001 diff --git a/emotiondiary/src/App.css b/emotiondiary/src/App.css index d1ff3d52..bb82961f 100644 --- a/emotiondiary/src/App.css +++ b/emotiondiary/src/App.css @@ -1,3 +1,102 @@ -.App { - padding: 20px; +@import url("https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&family=Yeon+Sung&display=swap"); + +body { + background-color: #f6f6f6; + display: flex; + justify-content: center; + align-items: center; + font-family: "Nanum Pen Script", cursive; + min-height: 100vh; + margin: 0px; +} + +@media (min-width: 650px) { + .App { + width: 640px; + } +} + +@media (max-width: 650px) { + .App { + width: 90vw; + } +} + +#root { + background-color: white; + box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px; +} + +.App { + min-height: 100vh; + padding-left: 20px; + padding-right: 20px; +} + +/* My Button */ + +.MyButton { + cursor: pointer; + border: none; + border-radius: 5px; + + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + padding-right: 20px; + + font-size: 18px; + white-space: nowrap; + + font-family: "Nanum Pen Script", cursive; +} + +.MyButton_default { + background-color: #ececec; + color: black; +} + +.MyButton_positive { + background-color: #64c964; + color: white; +} + +.MyButton_negative { + background-color: #fd565f; + color: white; +} + +/* HEADER */ + +header { + padding-top: 20px; + padding-bottom: 20px; + + display: flex; + align-items: center; + border-bottom: 1px solid #e2e2e2; +} + +header > div { + display: flex; +} + +header .head_text { + width: 50%; + font-size: 25px; + justify-content: center; +} + +header .head_btn_left { + width: 25%; + justify-content: start; +} + +header .head_btn_right { + width: 25%; + justify-content: end; +} + +header button { + font-family: "Nanum Pen Script", cursive; } diff --git a/emotiondiary/src/App.js b/emotiondiary/src/App.js index dbe54f27..578a6f1c 100644 --- a/emotiondiary/src/App.js +++ b/emotiondiary/src/App.js @@ -1,10 +1,104 @@ import "./App.css"; +import { BrowserRouter, Route, Routes } from "react-router-dom"; + +import Home from "./pages/Home"; +import New from "./pages/New"; +import Edit from "./pages/Edit"; +import Diary from "./pages/Diary"; +import React, { useReducer, useRef } from "react"; + +const reducer = (state, action) => { + let newState = []; + + switch (action.type) { + case "INIT": { + return action.data; + } + case "CREATE": { + newState = [action.data, ...state]; + break; + } + case "REMOVE": { + newState = state.filter((it) => it.id !== action.targetId); + break; + } + case "EDIT": { + newState = state.map((it) => + it.id === action.data.id ? { ...action.data } : it + ); + break; + } + default: + return state; + } + + return newState; +}; + +export const DiaryStateContext = React.createContext(); +export const DiaryDispatchContext = React.createContext(); function App() { + const [data, dispatch] = useReducer(reducer, []); + + const dataId = useRef(0); + + // CREATE + const onCreate = (date, content, emotion) => { + dispatch({ + type: "CREATE", + data: { + id: dataId.current, + date: new Date(date).getTime(), + content, + emotion, + }, + }); + dataId.current += 1; + }; + + // REMOVE + const onRemove = (targetId) => { + dispatch({ + type: "REMOVE", + targetId, + }); + }; + + // EDIT + const onEdit = (targetId, date, content, emotion) => { + dispatch({ + type: "EDIT", + data: { + id: targetId, + date: new Date(date).getTime(), + content, + emotion, + }, + }); + }; + return ( -
-

Emotion Diary

-
+ + + +
+ + } /> + } /> + } /> + } /> + +
+
+
+
); } diff --git a/emotiondiary/src/components/MyButton.js b/emotiondiary/src/components/MyButton.js new file mode 100644 index 00000000..ea1902dc --- /dev/null +++ b/emotiondiary/src/components/MyButton.js @@ -0,0 +1,18 @@ +const MyButton = ({ text, type, onClick }) => { + const btnType = ["positive", "negative"].includes(type) ? type : "default"; + + return ( + + ); +}; + +MyButton.defaultProps = { + type: "default", +}; + +export default MyButton; diff --git a/emotiondiary/src/components/MyHeader.js b/emotiondiary/src/components/MyHeader.js new file mode 100644 index 00000000..e16f34f4 --- /dev/null +++ b/emotiondiary/src/components/MyHeader.js @@ -0,0 +1,11 @@ +const MyHeader = ({ headText, leftChild, rightChild }) => { + return ( +
+
{leftChild}
+
{headText}
+
{rightChild}
+
+ ); +}; + +export default MyHeader; diff --git a/emotiondiary/src/index.js b/emotiondiary/src/index.js index 31508db1..0fb617a8 100644 --- a/emotiondiary/src/index.js +++ b/emotiondiary/src/index.js @@ -5,7 +5,7 @@ import App from "./App"; const root = ReactDOM.createRoot(document.getElementById("root")); root.render( - - - + // + + // ); diff --git a/emotiondiary/src/pages/Diary.js b/emotiondiary/src/pages/Diary.js new file mode 100644 index 00000000..907f6b27 --- /dev/null +++ b/emotiondiary/src/pages/Diary.js @@ -0,0 +1,15 @@ +import { useParams } from "react-router-dom"; + +const Diary = () => { + const { id } = useParams(); + console.log(id); + + return ( +
+

Diary

+

이곳은 일기 상세 페이지 입니다.

+
+ ); +}; + +export default Diary; diff --git a/emotiondiary/src/pages/Edit.js b/emotiondiary/src/pages/Edit.js new file mode 100644 index 00000000..af0b5390 --- /dev/null +++ b/emotiondiary/src/pages/Edit.js @@ -0,0 +1,24 @@ +import { useNavigate, useSearchParams } from "react-router-dom"; + +const Edit = () => { + const navigate = useNavigate(); + const [searchParams, setSearchParams] = useSearchParams(); + + const id = searchParams.get("id"); + const mode = searchParams.get("mode"); + console.log(id); + console.log(mode); + + return ( +
+

Edit

+

이곳은 일기 수정 페이지 입니다.

+ + + + +
+ ); +}; + +export default Edit; diff --git a/emotiondiary/src/pages/Home.js b/emotiondiary/src/pages/Home.js new file mode 100644 index 00000000..45d702eb --- /dev/null +++ b/emotiondiary/src/pages/Home.js @@ -0,0 +1,10 @@ +const Home = () => { + return ( +
+

Home

+

이곳은 홈 입니다.

+
+ ); +}; + +export default Home; diff --git a/emotiondiary/src/pages/New.js b/emotiondiary/src/pages/New.js new file mode 100644 index 00000000..e03d410a --- /dev/null +++ b/emotiondiary/src/pages/New.js @@ -0,0 +1,10 @@ +const New = () => { + return ( +
+

New

+

이곳은 일기 작성 페이지 입니다.

+
+ ); +}; + +export default New;