From 61e59742b0a3c2b26baa1a77ffe76dc902950146 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Thu, 29 Sep 2022 01:44:38 +0900 Subject: [PATCH 01/23] =?UTF-8?q?style:=20=EB=94=94=EC=9E=90=EC=9D=B8=20?= =?UTF-8?q?=EC=B4=88=EC=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 285 +++++++++++++++++++++++++++++++-- package.json | 8 +- src/App.tsx | 17 +- src/components/ChatBody.tsx | 21 +++ src/components/ChatBubble.tsx | 42 +++++ src/components/SendMessage.tsx | 38 +++++ src/pages/ChatRoom.tsx | 23 +++ 7 files changed, 417 insertions(+), 17 deletions(-) create mode 100644 src/components/ChatBody.tsx create mode 100644 src/components/ChatBubble.tsx create mode 100644 src/components/SendMessage.tsx create mode 100644 src/pages/ChatRoom.tsx diff --git a/package-lock.json b/package-lock.json index 73afbd8..331ecbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,14 +12,18 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", - "@types/node": "^16.11.60", + "@types/node": "^16.11.62", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", - "typescript": "^4.8.3", + "styled-components": "^5.3.6", + "typescript": "^4.8.4", "web-vitals": "^2.1.4" + }, + "devDependencies": { + "@types/styled-components": "^5.1.26" } }, "node_modules/@adobe/css-tools": { @@ -2140,6 +2144,29 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "dependencies": { + "@emotion/memoize": "^0.8.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/@eslint/eslintrc": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", @@ -3757,6 +3784,16 @@ "@types/node": "*" } }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -3816,9 +3853,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "node_modules/@types/node": { - "version": "16.11.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.60.tgz", - "integrity": "sha512-kYIYa1D1L+HDv5M5RXQeEu1o0FKA6yedZIoyugm/MBPROkLpX4L7HRxMrPVyo8bnvjpW/wDlqFNGzXNMb7AdRw==" + "version": "16.11.62", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.62.tgz", + "integrity": "sha512-K/ggecSdwAAy2NUW4WKmF4Rc03GKbsfP+k326UWgckoS+Rzd2PaWbjk76dSmqdLQvLTJAO9axiTUJ6488mFsYQ==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -3916,6 +3953,17 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, + "node_modules/@types/styled-components": { + "version": "5.1.26", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.26.tgz", + "integrity": "sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw==", + "dev": true, + "dependencies": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.5", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", @@ -4948,6 +4996,26 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/babel-plugin-styled-components": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, "node_modules/babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", @@ -5261,6 +5329,11 @@ "node": ">= 6" } }, + "node_modules/camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -5700,6 +5773,14 @@ "postcss": "^8.4" } }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, "node_modules/css-declaration-sorter": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", @@ -5881,6 +5962,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "node_modules/css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "node_modules/css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -8269,6 +8360,19 @@ "he": "bin/he" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -14548,6 +14652,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -14938,6 +15047,36 @@ "webpack": "^5.0.0" } }, + "node_modules/styled-components": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", + "hasInstallScript": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" + } + }, "node_modules/stylehacks": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", @@ -15457,9 +15596,9 @@ } }, "node_modules/typescript": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", - "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17953,6 +18092,29 @@ "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", "requires": {} }, + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@eslint/eslintrc": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", @@ -19112,6 +19274,16 @@ "@types/node": "*" } }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -19171,9 +19343,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "@types/node": { - "version": "16.11.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.60.tgz", - "integrity": "sha512-kYIYa1D1L+HDv5M5RXQeEu1o0FKA6yedZIoyugm/MBPROkLpX4L7HRxMrPVyo8bnvjpW/wDlqFNGzXNMb7AdRw==" + "version": "16.11.62", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.62.tgz", + "integrity": "sha512-K/ggecSdwAAy2NUW4WKmF4Rc03GKbsfP+k326UWgckoS+Rzd2PaWbjk76dSmqdLQvLTJAO9axiTUJ6488mFsYQ==" }, "@types/parse-json": { "version": "4.0.0", @@ -19271,6 +19443,17 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, + "@types/styled-components": { + "version": "5.1.26", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.26.tgz", + "integrity": "sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, "@types/testing-library__jest-dom": { "version": "5.14.5", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", @@ -20016,6 +20199,23 @@ "@babel/helper-define-polyfill-provider": "^0.3.3" } }, + "babel-plugin-styled-components": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, "babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", @@ -20260,6 +20460,11 @@ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -20585,6 +20790,11 @@ "postcss-selector-parser": "^6.0.9" } }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" + }, "css-declaration-sorter": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", @@ -20692,6 +20902,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -22420,6 +22640,21 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -26789,6 +27024,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -27081,6 +27321,23 @@ "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", "requires": {} }, + "styled-components": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, "stylehacks": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", @@ -27472,9 +27729,9 @@ } }, "typescript": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", - "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==" + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==" }, "unbox-primitive": { "version": "1.0.2", diff --git a/package.json b/package.json index 665ea56..48c3b2a 100644 --- a/package.json +++ b/package.json @@ -7,13 +7,14 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", - "@types/node": "^16.11.60", + "@types/node": "^16.11.62", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", - "typescript": "^4.8.3", + "styled-components": "^5.3.6", + "typescript": "^4.8.4", "web-vitals": "^2.1.4" }, "scripts": { @@ -39,5 +40,8 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "@types/styled-components": "^5.1.26" } } diff --git a/src/App.tsx b/src/App.tsx index 5d90092..66d463d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,20 @@ +import styled from "styled-components"; +import ChatRoom from "./pages/ChatRoom"; + function App() { - return
화이팅!!
; + return ( + + + + ); } +const Container = styled.div` + box-shadow: 1px 1px 2px 2px lightgrey; + margin: 0 auto; + margin-top: 2rem; + border-radius: 0.5rem; + width: 26rem; +`; + export default App; diff --git a/src/components/ChatBody.tsx b/src/components/ChatBody.tsx new file mode 100644 index 0000000..8d99610 --- /dev/null +++ b/src/components/ChatBody.tsx @@ -0,0 +1,21 @@ +import styled from "styled-components"; +import { ReceiverBubble, SenderBubble } from "./ChatBubble"; + +function ChatBody() { + return ( + + + + + ); +} + +const ChatBodyContainer = styled.div` + overflow: auto; + background: #a8c0d6; + height: 30rem; + width: 26rem; + justify-content: flex-start; +`; + +export default ChatBody; diff --git a/src/components/ChatBubble.tsx b/src/components/ChatBubble.tsx new file mode 100644 index 0000000..722753c --- /dev/null +++ b/src/components/ChatBubble.tsx @@ -0,0 +1,42 @@ +import styled from "styled-components"; + +function ReceiverBubble() { + return ( + <> + 안녕 + + ); +} + +function SenderBubble() { + return ( + <> + 안녕 + + ); +} + +const LeftBubble = styled.div` + position: relative; + display: inline-block; + max-width: calc(100% - 70px); + background-color: #ddd; + padding: 10px; + margin: 7px; + font-size: 13px; + border-radius: 10px; +`; + +const RightBubble = styled.div` + position: relative; + display: flex; + max-width: calc(100% - 70px); + background-color: #f9eb54; + padding: 10px; + margin: 7px; + font-size: 13px; + border-radius: 10px; + flex-direction: row-reverse; +`; + +export { ReceiverBubble, SenderBubble }; diff --git a/src/components/SendMessage.tsx b/src/components/SendMessage.tsx new file mode 100644 index 0000000..00ea527 --- /dev/null +++ b/src/components/SendMessage.tsx @@ -0,0 +1,38 @@ +import styled from "styled-components"; +import { useState, useEffect } from "react"; + +function SendMessage() { + return ( + + + 전송 + + ); +} + +const InputContainer = styled.form` + margin: 0 auto; + background: #ffffff; + height: 5rem; + width: 26rem; + border-radius: 0rem 0rem 0.5rem 0.5rem; + display: flex; + flex-direction: "row"; +`; + +const Input = styled.input` + width: 18.8rem; + margin: 0.5rem; + height: 3.5rem; + border: none; +`; + +const SendButton = styled.button` + width: 5rem; + height: 3.7rem; + margin-top: 0.5rem; + background-color: #f9eb54; + border-width: 0.01rem; +`; + +export default SendMessage; diff --git a/src/pages/ChatRoom.tsx b/src/pages/ChatRoom.tsx new file mode 100644 index 0000000..8fa72c2 --- /dev/null +++ b/src/pages/ChatRoom.tsx @@ -0,0 +1,23 @@ +import styled from "styled-components"; +import ChatBody from "../components/ChatBody"; +import SendMessage from "../components/SendMessage"; + +function ChatRoom() { + return ( + <> +
+ + + + ); +} + +const Header = styled.div` + margin: 0 auto; + background: #ffffff; + height: 6rem; + width: 26rem; + border-radius: 0.5rem 0.5rem 0rem 0rem; +`; + +export default ChatRoom; From ae42ee3383b8a3d617fe90ed24ecfce7e47b43f8 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Thu, 29 Sep 2022 14:04:25 +0900 Subject: [PATCH 02/23] feat: add userProfile at ChatRoomHeader --- public/favicon.ico | Bin 3870 -> 0 bytes public/img/user1.png | Bin 0 -> 55518 bytes public/img/user2.jpg | Bin 0 -> 11948 bytes public/logo192.png | Bin 5347 -> 0 bytes public/logo512.png | Bin 9664 -> 0 bytes src/components/ChatBody.tsx | 1 + src/components/ChatBubble.tsx | 3 ++- src/components/ChatRoomHeader.tsx | 28 ++++++++++++++++++++++ src/components/SendMessage.tsx | 26 ++++++++++++++++---- src/components/UserProfile.tsx | 38 ++++++++++++++++++++++++++++++ src/interface/ChatText.tsx | 5 ++++ src/pages/ChatRoom.tsx | 14 +++-------- src/store/UserData.json | 16 +++++++++++++ tsconfig.json | 10 ++------ 14 files changed, 117 insertions(+), 24 deletions(-) delete mode 100644 public/favicon.ico create mode 100644 public/img/user1.png create mode 100644 public/img/user2.jpg delete mode 100644 public/logo192.png delete mode 100644 public/logo512.png create mode 100644 src/components/ChatRoomHeader.tsx create mode 100644 src/components/UserProfile.tsx create mode 100644 src/interface/ChatText.tsx create mode 100644 src/store/UserData.json diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/public/img/user1.png b/public/img/user1.png new file mode 100644 index 0000000000000000000000000000000000000000..d71b339a1987ea1b6cedcb94e0a1bb023273d8cd GIT binary patch literal 55518 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/src/components/ChatBody.tsx b/src/components/ChatBody.tsx index 8d99610..dbf55eb 100644 --- a/src/components/ChatBody.tsx +++ b/src/components/ChatBody.tsx @@ -1,4 +1,5 @@ import styled from "styled-components"; +import ChatText from "../interface/ChatText"; import { ReceiverBubble, SenderBubble } from "./ChatBubble"; function ChatBody() { diff --git a/src/components/ChatBubble.tsx b/src/components/ChatBubble.tsx index 722753c..1dacc9b 100644 --- a/src/components/ChatBubble.tsx +++ b/src/components/ChatBubble.tsx @@ -1,9 +1,10 @@ import styled from "styled-components"; +import ChatText from "../interface/ChatText"; function ReceiverBubble() { return ( <> - 안녕 + gg ); } diff --git a/src/components/ChatRoomHeader.tsx b/src/components/ChatRoomHeader.tsx new file mode 100644 index 0000000..afb60db --- /dev/null +++ b/src/components/ChatRoomHeader.tsx @@ -0,0 +1,28 @@ +import styled from "styled-components"; +import UserData from "../store/UserData.json"; +import UserProfile from "./UserProfile"; + +function ChatRoomHeader() { + let userData = UserData.users; + console.log(userData); + + return ( +
+ {userData.map((user) => ( + + ))} +
+ ); +} + +const Header = styled.div` + margin: 0 auto; + background: #ffffff; + height: 6rem; + width: 26rem; + border-radius: 0.5rem 0.5rem 0rem 0rem; + display: flex; + flex-direction: row; +`; + +export default ChatRoomHeader; diff --git a/src/components/SendMessage.tsx b/src/components/SendMessage.tsx index 00ea527..623fd3b 100644 --- a/src/components/SendMessage.tsx +++ b/src/components/SendMessage.tsx @@ -1,11 +1,29 @@ import styled from "styled-components"; import { useState, useEffect } from "react"; +import ChatText from "../interface/ChatText"; + +let chatting: ChatText; function SendMessage() { + const [value, setValue] = useState(""); + const [text, setText] = useState([]); + + function AddText(value: any) { + chatting = { + text: value, + }; + } + + function onSend(e: any) { + e.preventDefault(); + AddText(value); + setValue(""); + } + return ( - - - 전송 + + setValue(e.target.value)} value={value} /> + 전송 ); } @@ -35,4 +53,4 @@ const SendButton = styled.button` border-width: 0.01rem; `; -export default SendMessage; +export { SendMessage, chatting }; diff --git a/src/components/UserProfile.tsx b/src/components/UserProfile.tsx new file mode 100644 index 0000000..9c02fce --- /dev/null +++ b/src/components/UserProfile.tsx @@ -0,0 +1,38 @@ +import styled from "styled-components"; + +function UserProfile({ + userImage, + userName, +}: { + userImage: any; + userName: string; +}) { + return ( + + + {userName} + + ); +} + +const UserContainer = styled.div` + display: flex; + flex-direction: column; + text-align: center; + margin-top: 1rem; + margin-left: 1rem; +`; + +const UserProfileImage = styled.img` + width: 3rem; + height: 3rem; + border-radius: 1rem; + border-width: 0.3rem; +`; + +const UserName = styled.div` + font-size: 0.7rem; + padding-top: 0.2rem; +`; + +export default UserProfile; diff --git a/src/interface/ChatText.tsx b/src/interface/ChatText.tsx new file mode 100644 index 0000000..d97ef0f --- /dev/null +++ b/src/interface/ChatText.tsx @@ -0,0 +1,5 @@ +interface ChatText { + text: string; +} + +export default ChatText; diff --git a/src/pages/ChatRoom.tsx b/src/pages/ChatRoom.tsx index 8fa72c2..05b4f6b 100644 --- a/src/pages/ChatRoom.tsx +++ b/src/pages/ChatRoom.tsx @@ -1,23 +1,15 @@ -import styled from "styled-components"; import ChatBody from "../components/ChatBody"; -import SendMessage from "../components/SendMessage"; +import ChatRoomHeader from "../components/ChatRoomHeader"; +import { SendMessage } from "../components/SendMessage"; function ChatRoom() { return ( <> -
); } @@ -36,5 +42,14 @@ const Header = styled.div` display: flex; flex-direction: row; `; +const CloseBtn = styled.div` + position: absolute; + right: 5rem; + top: 3rem; + width: 1rem; + height: 1rem; + background: red; + border-radius: 1rem; +`; export default ChatRoomHeader; From 04bee855c38738c947a1f31fc17f60d2c55f9e2d Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Thu, 3 Nov 2022 21:44:33 +0900 Subject: [PATCH 16/23] [feat]: search Friends --- public/img/search.png | Bin 0 -> 7899 bytes src/pages/FriendsList.tsx | 113 ++++++++++++++++++++++++++++++-------- 2 files changed, 90 insertions(+), 23 deletions(-) create mode 100644 public/img/search.png diff --git a/public/img/search.png b/public/img/search.png new file mode 100644 index 0000000000000000000000000000000000000000..48b8e6dc4a5b42b03a47237031111d059d901757 GIT binary patch literal 7899 zcmeHMhdUci__z0{T{Kh(iCILowuluggsPgg_o%J*rc_lZQ6wP*t<@T>J=&7mqDHG| zi<(7C)%^MX{*B-7p68zT?tSjPyLWu}&( z2oDdJ_44-#cDWzuCL8d;qj*P6;Bp=cq_L&$#l^+t`2R2eZ-M`t7GM@_UB1-(BE-TJ zML|hLO+!mZ&%nsU%)-jXeuaaRi<^g+?<&85;5C4d@O2TOs2E6G0t}Iql9rK`yCJWj z2vxeNeCxJ~s+zinrj|BL2d=B9Z(xWpGBz!|0gUxcG#`q~w&;wDgS3M_JjAbDrcr%|quGJS!~1 z6hAL1EyLpQE!siuNXz0A zqeR)m1HbaJVx?bGx*zZO&0_Mbxg|$GF0=$4G}UXIER7hlvv;p{)QxOf#_#86@p>#C z%?f@zRIrO&9EtRvjr6O5&B-hu#s2N;a#bcA$~|-;gGTbOTd03O1jS_~v5fB)jl16H z^P***&a=nFaG8AGI|Ni!Xh+(ueEl0|+2aZM=WM(v4bG{F>OJDo)?1i2d^VG~U#Rt2 zl@C23gCnp%N7JnEOv^>?Nxb!2{8O8gnA!Q=|3YE#s*QXTzooR>Vn=%8!9x0bWTScb zVBZyWr#VeQtv52i-yYQG`=uAquC8v0X83AVNboXT{1eg}kN@jE~GnAfcc zuc9Qhbj|mtYk&F`2biX1J|$}xugBcJsA1uu&G(*%a_}=Cim2CyILQi=1t5nj+Jz_7>m$X&)chK&E{PRs62)uSwJ~ zXnU0vyA zfW(X3!0;zQ-qDhl+wA<^U0%r%e`iXvJRp)p73Zv?InMYO+HKv=sbJWl8Q~=rk z=tXY?#cy;YWOdcvHWY4n;Be`hNr{#h9^BtXIxV}EARK#Q_o=3TjhO138Wd^gfK`!* zoV!TcJ>YNA_oVasug?|EaU41qu@n3ft=@NQf$?O_fo*BXF|GAN#M;jwxzT%tAMgHa zk^QFgGT>)dQ)sXd|7`P3l6B|D{Brk~lDLzbfSibNCu;lVlizCrntzj-(v6+_HTuP4 zoAT;NUhEe>oq0R|g7#PD0`aRUT%RV@>7)97z5P{X6xJE#CtCO<=G_nB^`}oCEeEXe zO|YJLERul~NdoqN@3Adh5n$0gdHBTKTIE+6fb+fs_MJ%p!1Ygda-98D*Vi&ac3cyA zk<{qw;Q>a&_2>TAUgWgGqsbvvtaQgKN?J4`-` zw0bVXx?`yEFp8tR3afZpHL9mK(p2oz?`K6P>qOr2XX>u*cs{XzKYT#1m|sM1C}(c> z8QF{<6s#f=hB1+G33*Y+rfC?RWX=)QspMR{91P0Jl$%->9g`OzIe2Hz)+)C=nYf|M z-?ewW9Q$LAZZ~z_WuKoGMYWqD=;g4Cn%jN6@prpCGN)HqmT}_s((Jw60@7dJiMHk4 zq$z~wJpSfxDP6GF7pn%xv}l2rhfWlwA?G>J7hArwbq;JJOlMVe9g=4_PE2S6>sG;^ z+aveB(mH(Fa=|ofaNT)WsJF6!X2@yxmB@}_y{W1Q&vU3|{#C1R(;%-dt+OfEYaAog zpz~Q5N+c@z=D&VImu-?D!?`0}etT2le)R;@!%=g#V)G{Ex8zocUiy1!FN${8PW|9> zNDoj(ourE1O(8Q*gax)7LF%sx8wfQxH_G&Qsb%m9` zn93IP#YRu3F2(*a3CDkO-0N=NI+4{^&|vt@1M1>MJu9;rgV~Frlit5RQi$ScF^Vp5 z?_hcOoEOg_C)P{9Q_fF)|51(RM7sHInzl9uIZIIxfe}ykPjs|H8gqS30L;^RX$>td z30Lh@F|PH}F*;7fQ>!maybPa=msxM<357aYs~#DhT~h9j`c)y7)<%v~aUaGKsoRvL z${C|FwX7FIh5Bo&{hOvN6OCpH%lbSHgy3gApE;jRH4^xDt14R8XAg}d=1oF;V|Y(% zzVU@@1x47DoP~IMP#;-0TZPoT0I6-cspQWH#1@>1mfX7U#x4wQhm!h22>0H&5SiIEDOF%gX~dT9k> zJxOn;aLQa95<&zW>%OGbsUo?_D{@p*KZoDKBTV^J@`|&Ma=S32c2r}L#gCIm;c8y7 zPaa3}#eaBRsmLzUWoP1X+~?v@CCZ$4#iMdO7qnYYDWZ~FoE?GkVg=j=lq#f{UP_&M znHxy(_81AECo-^V}WT%yoZ`0J z&@73keznZg%r=>jcBT7Vn;s^!#8JN9GbuLEsJz}&yPN7AiDnMdQmeJrdgJ60(Wf5b zMD^`+pvo>)$8{I>l`t#aXd?&RHQl&w<7BUMTmOaRUQR;wOc^mI&!W;egky_uB(VMAPA3k}&2RpN_y7JCJ&lj|f zomC^2sT(!oH`1%SxTQ3NHaw<-Avd|@57^%Aq#eIogtRa$j*npDelP+O6WCK>4tzsAja5*Gyw8h>9=EQf?P@R9?pW)aoa9EzIA z4MXB$d#(j74~HlKZ1t4&;GvhM`37uYP!t`-wvppsMP?b$b7D>*3Bbr|h?P*^q(niT)UO>rcVkGy=1 z4?o-HdqB0ctv;a1$q-Z8< zzly=H+{6bj@CNs3+lXv#rD>953+QzgzJqe(IO6_ugCg4{{0A_KzD8~6A9oQgpG@VT zH*tT2Feuwr1!L5G56l0>OS(os^SWX<61n1|Qxv>}`3T{BL1)#Ktj_(0xsG2aw;tCg zp9ie(SNaWBpp(3&jC2Lq{pQk*(nZ*j_XR<7e#SRFyxypffby9p(bS3+FtiTGi zl6HSl6+CtmnLtr&UnsxsXo}Ra#Sa)UFcdq8Y;y+d-h-voD(IHROO;l@!K{+Ls$hA+ zxkC)Zt?8$o1}iW~MtfLPu-c6$1J$v8 zGf#k3{j?GmVuF&<8Sl_P+4-KEWF%5p(%dn3X0Qw70d*y04oD-uF!OyuWLRT?@|m39 zmlDm<5mzNSlfZjScDvG`oy5$66?7pz-*CkMl4$UUFfbF?D}g>zwG@j&IxE`k0zk5f znQ(o?kA7NPaFDpA7{*+Ta^f!+$TT4nuAW&Ta(rlxSF#kVv8Z6e*FWK8#Q}5Sx%bk$ zu7kX_bt|55&ZWN<%d||+9F#>s;bZ~|$iP#SjrL3>*6L-PA#-g^Gj688ok!0y@f6Xb zezPYogrRypR55U)ngC1ak zuL?OOu5Tzn%xQRvl+eU9q7lwO!4lqLj#t6UYUO$(IflyNlKA>$&I2rvgTdlD1K%|) zT#;x{fdaD24iexJL<4f=09%`rASeo^i{}7+>Zjd=1PNJ+%_E&}+cl(fT5IXzr9c{K z%wKT>*NFzt4KpGGdyUXn*?2M@LH6kEc5i`%;xh-7(1lEVS=a#@q5(_Q0K9D}3Nf6P zIUt5mqvNxKXZRs=?;2#BEGG(a55;F{$%5#5X^t3k0$C zfdnrnmb7DrG;+!o8Re!Tm#gm@XS6Ooo#5tY;3;+Bj---ZH_Nrg_9Ox>#0+W8eLMAlHwhK3yjad$z%MHR zD?(vOs2qivK3zXZFuP?W9kPf) zI{B1OT7XesrskBBn-)Y-GHzNLH|##pGsP`HAL^L|`9tHpB+axvlB|O63FqEOy=ov= zIj)IgTTx?L5eM?FT6kLP5_Rq(aBCb~)ZkE2a@j#8c`iLe@*Vg5J<1I;UJI}$Pvagh zf$s7$2uE~2zWN4jA;^h4U(!L?XI>owSC9$F?wKMBkku8bSKwwziUZYP@PUT&s&i%u z`+@CC$RYcHaTFz?0Cx6i6U{WOyVarB_!ZghEr2Ie4UDgI+fp3VLb%&m7i`QHKdT*^i8-RkxC$4Gy1 za-2Hijp7xT3|mMz9rrjM?JUT3#YYs%ykCZ zy>Fw7S=c>|=)dZA6l>9|^f9kaCd8%(020x*RA#qw*-q~=?n&Q=0NR+o?#crquI~9> z0nFyn1^hImN3>s$Rr+E^FO*^}jiX-D4bF?xs~I}L_4mDdd{QThZc`5A>aPzQ zM3_d&mR!nxzozm^mFsJ;LsH;7=&PM< z9j^}0TlV2vzbh9p6B*)*pwI{t20Y|&IAjAnq&W|z27Iihl=DFveDF_kw7**6a<=UE zcf4_&;s`b7ta2!;CL5{_U}jAaE^&l^*w0CsIjE#$?}@8po_vGb?c#?ny@4MMt3#J+ z;Sr8u8mtkDJh4x2l+vMFl3D%B8Oy8^;wm~!xrCB=o?1^P2W^FXa+$qY~@j&YA2)0iK_NJoyW=UuBr*P3Q%M^71VJruT+Npi&x95A> z2E#akeLDf)f{3_ucjF}cQi8~0DaAv;0VAu86=Rs8t+vj-T-r<1F`URhll#Tu|DY@X zG8@b%yLF%|0S#jWsJolu?AlLSsJpc9A7KGhAjmgZPd58s6O}LeP-Y}j9&pnz3JiC7 z&~(3wYu{^hW3@rQbIi-MfzLPeHmgd63s8C@PMP(s;2{Q{R}h-Yiiw5ieKm>il#JES zgN<3G%@A^AafZdU{q82ro|ZdGlo9t9WuP@})LUV+tS5M-j@olo=vLJ1PLRNzLsz#5 z6v;jX>MQwzuMja6_9u<6q~&qt_E_@S(?vqiZ?pKBYw9KDHy{)z1UY;VVN94^uKMII zWx4aUXzY6d4Bzul*BpYjj(~a}`*#zfZ24(%Hrq?I*^Xd0?geIH&z3avy&c2!X5M-l ze*6AqYI`;X6^)&QyWSV>>E_Bb8iDSR@*f{xU6GRL)>lrhOJKL-aDFW; z3qCtNN1^WDv3RDs#wTBS*phfAX?u%%+z&roY&$qs&&e!ruTWaxu+iUz^35HO51Q zU8K<6F58niYsSS#gE21R#wBMHPnACJ!(R7gdhaF_s1lP4EK}LZj{2b24V=-}eIWVc zr_dv<_i2`}V5uH@i%JyZ2qKYPOw9xYm7$Ei@j4l?`j6ri`(0eJsA`$nY7zT1lIA=R z#h5=BvzvCPiOe|VI!C&R=MS3fW{AAAI7qRp^qwm+)Rq2sT(CY=BqzXb+jrpLWNyp7p}f34|lvb zA=I6Bv#jzo;@WA&cZ*}Qy>!=8?PD0GY0vY>un*h$r)UiGZA?-Q2U(m+tS3k1#x_;T zu~pAAVfOt(k3K>cC*{KIij(^X@9Cfl?xc2$v8rlm4z^1H(!$AfnEgo5(Xe?Q!n6Hp zqs=Y6OY1l~XKG3LLzYysg=G?hA zN5AaV{H(GA!ysG}ttLF+Z}LjQ{18R3hqq{Xq=ElSI8+oBXI?YO||dg%)^5@+5UH*(OZ6qsRNd zY66^}(Rz`PM|WQ?Z?2m}UU*ST&`lO@E_oz$cil6thm-^d30!-dTbW!J-#y*o#@gvR zv4pwdbjt+N&Ja5jMb?YzPtDDC8tjA;{#-k9JdrQv_jzL$o}lgGiP-Z>r%o8n32@os z?g|T27#7e+v4!c_F@y;Gvw9-GyDeHp=xyr}!#uz$e$&l9m)ph{$6}&%?cw@;(8~`J znQ!{oh4d6ch|WY>Yb)FJsHg4|=r613QtMTZBLXzbH`+f$S;Nu)>(-lk9fqEfXXKHr z#PQ?x@aLtp$`zwk5ZfFbHI?Hp?H(`KC(x5Tc>x>u_;(B)4N$SS1omny)_lqw8p=km zojy42Ijjz}U3mv}^Ya^c)iWVsf75yLR2acu^t^sCV&l`Jc2^1D&6<~3$l`Q7>|5hP z-POY-MMaJCu!r*OqJ?FzB3Dkv7Gm6TzE558v8nYU%~)Y$YbWJL=0kQqZN7*-tAFc1 z*!-*{POtTGoY&n}Zzi=BA}e&|BMbQC+N+exXbTRKMt0aZ`Y#H*H3dzp95zjDGOO)` zt~A5JCn3Y-5IH*RR`3H#lSn!eO#P83={u5l0|i3~B{w0v6)*}^B-nqBya8sm=fXo~ zbZk5sOc?DM-EhlLP=q`>WrqMEtifzNSxg`r021uGC#iP_dB|vthy1h0ZsqMNn9R+v zku(fnd6IUzwdSh&RG}+X;>bh85;IiGr?e)s|DXX8Bxw{q@*>TvAP=is5-VT4pmZyH zF%4ZQu0bB&_NF$mL0>XlTE@|4Qn0zIi7V5T9?AO_YJl=jXc|`%!6-10U^SkpEK5>0n3Hf-L7^vF0 zgt3)4I_B{l45ficY%=TLhOTgcnUyY~dWMxId$Y3+`LMX**dn2>ZcONuOKn7ywdRQW z93!&@Om5{GAgBuiI{!F-B7M6WdFN6c(Q`JpDjyj1zBrnYI-VSpfh>4iA|8^^G;JUd z$c}Cnstgu}&G|?JY-!!a4jL$KwnaO zP9}yDFiY*$KKu@C%jVYU{Sk7=i#}_*gYuR}vy<)3aKYHqr9v6*A+x0Yl+@1qZQ zvxDzh#Gc}(h4i+Z#L)pEgDw?9$@{r^%vXz^8-q31%?Hw1Qum)}fU0=|VElgVX#3sLpdsYBRh&`|F^~dX zZ^iFO>Obj{K`$yrCZ#q0+kg{q1@5n@C6^>gX}!y!Q;rk(5#T2ft|w`!RxR)J=aKM> lFQ~TlM@8RLmHKl}H4_-cS;5uAv;U { let userData = UserData.users; + const [roomNum, setRoomNum] = useRecoilState(roomId); + const [search, setSearch] = useState(false); + const { text, handleChange } = useInput(""); + let friendsData = userData.filter((user) => user.userId != 0); return ( @@ -19,30 +28,68 @@ const FriendsList = () => { <>
친구
- -
- -
- -
- 친구 {userData.length - 1} -
- {userData.map((people) => - people.userId != 0 ? ( - setSearch((prev) => !prev)} + /> + {search === true ? ( + <> + - ) : ( - <> - ) + {friendsData + .filter((i) => i.userName.includes(text)) + .map((people) => ( + { + setRoomNum(people.userId); + }} + > + + + ))} + + ) : ( + <> +
+ +
+
+ 친구 {userData.length - 1} +
+ + {friendsData.map((people) => ( + { + setRoomNum(people.userId); + }} + > + + + ))} + )}
@@ -52,6 +99,7 @@ const FriendsList = () => { const Container = styled.div` display: flex; + position: relative; `; const FriendListWrap = styled.div` @@ -68,4 +116,23 @@ const Div = styled.div` font-size: ${(props) => props.font || 0.5}rem; `; +const Search = styled.img` + width: 1rem; + height: 1rem; + position: absolute; + right: 1rem; + top: 1.1rem; +`; + +const Input = styled.input` + width: 100%; + margin-top: 1.5rem; + background: #f2f2f2; +`; + +const StyledLink = styled(Link)` + textdecoration: none; + color: #000; +`; + export default FriendsList; From e4d19d2b9fc1678c9f2b384947bd7001fe39454f Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Thu, 3 Nov 2022 22:05:06 +0900 Subject: [PATCH 17/23] [feat]: link to gitHub & tistory --- src/pages/Setting.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pages/Setting.tsx b/src/pages/Setting.tsx index 63795fa..a9cbe4b 100644 --- a/src/pages/Setting.tsx +++ b/src/pages/Setting.tsx @@ -6,7 +6,13 @@ const Setting = () => { -
Setting
+
더보기
+
window.open("https://github.com/chaeyeonan")}> + GitHub +
+
window.open("https://12yeonii.tistory.com/")}> + Tistory +
); @@ -22,7 +28,9 @@ const SettingWrap = styled.div` `; const Div = styled.div` - color: #000; + font-weight: bold; + font-size: 1rem; + padding-bottom: 1rem; `; export default Setting; From 7fce51695fee31a161dccd1983e49ec70722b4d5 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 4 Nov 2022 00:48:13 +0900 Subject: [PATCH 18/23] [fix]: render lastChat & lastTime --- src/components/list/ChatLIstItem.tsx | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/components/list/ChatLIstItem.tsx diff --git a/src/components/list/ChatLIstItem.tsx b/src/components/list/ChatLIstItem.tsx new file mode 100644 index 0000000..a9c5f05 --- /dev/null +++ b/src/components/list/ChatLIstItem.tsx @@ -0,0 +1,41 @@ +import { useRecoilValue } from "recoil"; +import styled from "styled-components"; +import { profile } from "../../interface/interface"; +import { chatList } from "../../store/recoil/recoil"; +import { Name, NameWrap, ProfileContainer, ProfileImg, Msg } from "../style"; + +const ChatListItem = ({ + userID, + profileImg, + name, + PersonalMessage, +}: profile) => { + const chatting = useRecoilValue(chatList); + + let lastChatIndex = chatting[userID - 1].chat.length - 1; + let lastChat = chatting[userID - 1].chat[lastChatIndex].text; + let lastChatTime = chatting[userID - 1].chat[lastChatIndex].time; + + return ( + + <> + + + {name} + {lastChat} + + + + + ); +}; + +const Time = styled.div` + position: absolute; + color: lightgray; + font-size: 7px; + right: 0rem; + padding-bottom: 1rem; +`; + +export default ChatListItem; From 577b3ffb5633bf93dabba7136b44f988d85c4935 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 4 Nov 2022 00:48:47 +0900 Subject: [PATCH 19/23] [test]: add user --- public/img/user4.png | Bin 0 -> 108316 bytes public/img/user5.png | Bin 0 -> 105762 bytes src/store/Message.json | 77 +++++++++++++++++++++++++++++++--------- src/store/UserData.json | 14 +++++++- 4 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 public/img/user4.png create mode 100644 public/img/user5.png diff --git a/public/img/user4.png b/public/img/user4.png new file mode 100644 index 0000000000000000000000000000000000000000..aa178c8727fc553162946b9e8dfee11f6040480f GIT binary patch literal 108316 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 z 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

huCrQsxx9`nDcJ$X~M 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 literal 0 HcmV?d00001 diff --git a/src/store/Message.json b/src/store/Message.json index 2f82420..7f76429 100644 --- a/src/store/Message.json +++ b/src/store/Message.json @@ -6,21 +6,21 @@ "chatId": 1, "senderId": 0, "receiverId": 1, - "text": "오잉.................", + "text": "어디야", "time": "11:24" }, { "chatId": 2, "senderId": 1, "receiverId": 0, - "text": "놀쟈", + "text": "학문관", "time": "11:24" }, { "chatId": 3, "senderId": 0, "receiverId": 1, - "text": "구래", + "text": "ㅇㅋ용~", "time": "11:28" } ] @@ -32,22 +32,22 @@ "chatId": 1, "senderId": 2, "receiverId": 0, - "text": "바보", - "time": "11:24" + "text": "헤이", + "time": "17:34" }, { "chatId": 2, "senderId": 0, "receiverId": 2, - "text": "너 지금 바보라햇냐?", - "time": "11:24" + "text": "why", + "time": "18:24" }, { - "chatId": 3, + "chatId": 1, "senderId": 2, "receiverId": 0, - "text": "그랬다", - "time": "11:28" + "text": "그냥 불러봐써", + "time": "19:24" } ] }, @@ -58,22 +58,67 @@ "chatId": 1, "senderId": 3, "receiverId": 0, - "text": "멍청이", - "time": "11:24" + "text": "오늘 점심 뭐 먹을래", + "time": "11:03" }, { "chatId": 2, "senderId": 0, "receiverId": 3, - "text": "너 지금 그게 할말이니?", - "time": "11:24" + "text": "사케동?", + "time": "11:30" }, { "chatId": 3, "senderId": 3, "receiverId": 0, - "text": "내가 뭐 못할말했니?", - "time": "11:28" + "text": "굿 ㄱㄱ", + "time": "11:43" + } + ] + }, + { + "roomId": 4, + "chat": [ + { + "chatId": 1, + "senderId": 4, + "receiverId": 0, + "text": "반박하지마", + "time": "11:03" + }, + { + "chatId": 2, + "senderId": 0, + "receiverId": 4, + "text": "알겠어 ㅜㅜ", + "time": "11:30" + } + ] + }, + { + "roomId": 5, + "chat": [ + { + "chatId": 1, + "senderId": 5, + "receiverId": 0, + "text": "나 오늘 어디가게", + "time": "11:03" + }, + { + "chatId": 2, + "senderId": 0, + "receiverId": 5, + "text": "하리보 100주년 전시회", + "time": "11:30" + }, + { + "chatId": 3, + "senderId": 5, + "receiverId": 0, + "text": "정답!", + "time": "11:43" } ] } diff --git a/src/store/UserData.json b/src/store/UserData.json index df07a05..50e7e63 100644 --- a/src/store/UserData.json +++ b/src/store/UserData.json @@ -2,7 +2,7 @@ "users": [ { "userId": 0, - "userName": "마이구미포포", + "userName": "포포", "profileImage": "user0", "personalMessage": "내가 주인이다" }, @@ -23,6 +23,18 @@ "userName": "승승장구", "profileImage": "user3", "personalMessage": "" + }, + { + "userId": 4, + "userName": "반박시.박시현", + "profileImage": "user4", + "personalMessage": "반박하지마" + }, + { + "userId": 5, + "userName": "김보드라", + "profileImage": "user5", + "personalMessage": "" } ] } From c1942a67d5832de4a4893004d7503d6fe507b07c Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 4 Nov 2022 00:49:14 +0900 Subject: [PATCH 20/23] [style]: reorganize code --- src/components/ChatLIstItem.tsx | 67 --------------- src/components/ChattingRoom/ChatBody.tsx | 2 +- src/components/ChattingRoom/ChatBubble.tsx | 4 +- .../ChattingRoom/ChatRoomHeader.tsx | 9 +- src/components/ChattingRoom/SendMessage.tsx | 4 +- src/components/list/FriendsProfile.tsx | 22 +++++ src/components/profile/FriendsProfile.tsx | 60 ------------- src/components/profile/HedaerProfile.tsx | 49 +++++++++++ src/components/profile/UserProfile.tsx | 85 ------------------- src/components/style.tsx | 80 +++++++++++++++++ src/interface/{chat.tsx => interface.tsx} | 0 src/pages/ChatList.tsx | 33 ++----- src/pages/ChatRoom.tsx | 4 +- src/pages/FriendsList.tsx | 27 ++---- src/pages/Setting.tsx | 28 +++--- src/store/recoil/recoil.tsx | 2 +- 16 files changed, 189 insertions(+), 287 deletions(-) delete mode 100644 src/components/ChatLIstItem.tsx create mode 100644 src/components/list/FriendsProfile.tsx delete mode 100644 src/components/profile/FriendsProfile.tsx create mode 100644 src/components/profile/HedaerProfile.tsx delete mode 100644 src/components/profile/UserProfile.tsx create mode 100644 src/components/style.tsx rename src/interface/{chat.tsx => interface.tsx} (100%) diff --git a/src/components/ChatLIstItem.tsx b/src/components/ChatLIstItem.tsx deleted file mode 100644 index e401fd1..0000000 --- a/src/components/ChatLIstItem.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { useRecoilValue } from "recoil"; -import styled from "styled-components"; -import { profile } from "../interface/chat"; -import { chatList, chattingRoom, roomId } from "../store/recoil/recoil"; - -const ChatListItem = ({ - userID, - profileImg, - name, - PersonalMessage, -}: profile) => { - const chatting = useRecoilValue(chatList); - const getChatting = useRecoilValue(chattingRoom); - - let lastChatIndex = getChatting[0].chat.length - 1; - let lastChat = chatting[userID - 1].chat[lastChatIndex].text; - let lastChatTime = chatting[userID - 1].chat[lastChatIndex].time; - - return ( - - <> - - - {name} - {lastChat} - - - - - ); -}; - -const ProfileContainer = styled.div` - display: flex; - padding: 5px 0; -`; - -const ProfileImg = styled.img<{ picSize?: number }>` - width: ${(props) => props.picSize || 3}rem; - height: ${(props) => props.picSize || 3}rem; - border-radius: 1rem; -`; - -const NameWrap = styled.div` - display: flex; - flex-direction: column; - justify-content: center; - box-sizing: border-box; - padding: 7px; -`; -const Name = styled.div` - font-size: 13px; - padding-bottom: 3px; -`; -const PersonalMsg = styled.div` - color: gray; - font-size: 10px; -`; -const Time = styled.div` - color: lightgray; - font-size: 7px; - position: absolute; - right: 5.5rem; - padding-bottom: 1rem; -`; - -export default ChatListItem; diff --git a/src/components/ChattingRoom/ChatBody.tsx b/src/components/ChattingRoom/ChatBody.tsx index a27fcbb..9b71a2c 100644 --- a/src/components/ChattingRoom/ChatBody.tsx +++ b/src/components/ChattingRoom/ChatBody.tsx @@ -1,7 +1,7 @@ import { useRef, useEffect } from "react"; import { useRecoilState, useRecoilValue } from "recoil"; import styled from "styled-components"; -import { chat } from "../../interface/chat"; +import { chat } from "../../interface/interface"; import { chatList, roomId } from "../../store/recoil/recoil"; import ChatBubble from "./ChatBubble"; diff --git a/src/components/ChattingRoom/ChatBubble.tsx b/src/components/ChattingRoom/ChatBubble.tsx index 74a75aa..138c73a 100644 --- a/src/components/ChattingRoom/ChatBubble.tsx +++ b/src/components/ChattingRoom/ChatBubble.tsx @@ -1,9 +1,9 @@ import { useRecoilState, useRecoilValue } from "recoil"; import styled from "styled-components"; -import { chat } from "../../interface/chat"; +import { chat } from "../../interface/interface"; import { currentId } from "../../store/recoil/recoil"; -import { UserProfileImage } from "../profile/UserProfile"; import UserData from "../../store/UserData.json"; +import { UserProfileImage } from "../style"; interface bubbleStyle { color?: string; diff --git a/src/components/ChattingRoom/ChatRoomHeader.tsx b/src/components/ChattingRoom/ChatRoomHeader.tsx index 7589bef..680143c 100644 --- a/src/components/ChattingRoom/ChatRoomHeader.tsx +++ b/src/components/ChattingRoom/ChatRoomHeader.tsx @@ -3,7 +3,7 @@ import { useRecoilState, useRecoilValue } from "recoil"; import styled from "styled-components"; import { currentId, roomId } from "../../store/recoil/recoil"; import UserData from "../../store/UserData.json"; -import { UserProfile } from "../profile/UserProfile"; +import UserProfile from "../profile/HedaerProfile"; function ChatRoomHeader() { let userData = UserData.users; @@ -35,6 +35,7 @@ function ChatRoomHeader() { } const Header = styled.div` + position: relative; margin: 0 auto; background: #ffffff; height: 6rem; @@ -44,11 +45,11 @@ const Header = styled.div` `; const CloseBtn = styled.div` position: absolute; - right: 5rem; - top: 3rem; + right: 1rem; + top: 1rem; width: 1rem; height: 1rem; - background: red; + background: #fa5858; border-radius: 1rem; `; diff --git a/src/components/ChattingRoom/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx index c87117c..8835fc2 100644 --- a/src/components/ChattingRoom/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -1,7 +1,7 @@ import { useRecoilState, useRecoilValue } from "recoil"; import styled from "styled-components"; import useInput from "../../hooks/useInput"; -import { chat, chatRoom } from "../../interface/chat"; +import { chat, chatRoom } from "../../interface/interface"; import { chatList, chattingRoom, @@ -76,4 +76,4 @@ const SendButton = styled.button` border: none; `; -export { SendMessage }; +export default SendMessage; diff --git a/src/components/list/FriendsProfile.tsx b/src/components/list/FriendsProfile.tsx new file mode 100644 index 0000000..084e30f --- /dev/null +++ b/src/components/list/FriendsProfile.tsx @@ -0,0 +1,22 @@ +import styled from "styled-components"; +import { profile } from "../../interface/interface"; +import { Name, NameWrap, ProfileContainer, ProfileImg, Msg } from "../style"; + +const FriendsProfile = ({ + userID, + profileImg, + name, + PersonalMessage, +}: profile) => { + return ( + + + + {name} + {PersonalMessage} + + + ); +}; + +export default FriendsProfile; diff --git a/src/components/profile/FriendsProfile.tsx b/src/components/profile/FriendsProfile.tsx deleted file mode 100644 index 319177d..0000000 --- a/src/components/profile/FriendsProfile.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import styled from "styled-components"; -import { profile } from "../../interface/chat"; - -const FriendsProfile = ({ - userID, - profileImg, - name, - PersonalMessage, -}: profile) => { - return ( - - {userID === 0 ? ( - <> - - - {name} - {PersonalMessage} - - - ) : ( - <> - - - {name} - {PersonalMessage} - - - )} - - ); -}; - -const ProfileContainer = styled.div` - display: flex; - padding: 5px 0; -`; - -const ProfileImg = styled.img<{ picSize?: number }>` - width: ${(props) => props.picSize || 3}rem; - height: ${(props) => props.picSize || 3}rem; - border-radius: 1rem; -`; - -const NameWrap = styled.div` - display: flex; - flex-direction: column; - justify-content: center; - box-sizing: border-box; - padding: 7px; -`; -const Name = styled.div` - font-size: 14px; - padding-bottom: 3px; -`; -const PersonalMsg = styled.div` - color: #7d7d7d; - font-size: 11px; -`; - -export default FriendsProfile; diff --git a/src/components/profile/HedaerProfile.tsx b/src/components/profile/HedaerProfile.tsx new file mode 100644 index 0000000..9bc5470 --- /dev/null +++ b/src/components/profile/HedaerProfile.tsx @@ -0,0 +1,49 @@ +import { useRecoilState } from "recoil"; +import styled from "styled-components"; +import { currentId } from "../../store/recoil/recoil"; +import { UserProfileImage } from "../style"; + +function UserProfile({ + userImage, + userName, + userId, +}: { + userImage: any; + userName?: string; + userId: number; +}) { + const [sender, setSender] = useRecoilState(currentId); + + function onClick() { + setSender(userId); + } + + return ( + + {userId === sender ? ( + + ) : ( + + )} + {userName} + + ); +} + +const UserContainer = styled.div` + display: flex; + flex-direction: column; + text-align: center; + margin-top: 1rem; + margin-left: 1rem; +`; + +const UserName = styled.div` + font-size: 0.7rem; + padding-top: 0.2rem; +`; + +export default UserProfile; diff --git a/src/components/profile/UserProfile.tsx b/src/components/profile/UserProfile.tsx deleted file mode 100644 index a789889..0000000 --- a/src/components/profile/UserProfile.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { useRecoilState } from "recoil"; -import styled from "styled-components"; -import { currentId } from "../../store/recoil/recoil"; - -interface imageStyle { - brightness?: string; - width?: number; - height?: number; -} - -function UserProfile({ - userImage, - userName, - userId, -}: { - userImage: any; - userName?: string; - userId: number; -}) { - const [sender, setSender] = useRecoilState(currentId); - - function onClick() { - setSender(userId); - } - - return ( - - {userId === sender ? ( - <> - -

- - ) : ( - - )} - {userName} - - ); -} - -const UserContainer = styled.div` - display: flex; - flex-direction: column; - text-align: center; - margin-top: 1rem; - margin-left: 1rem; -`; - -const UserProfileImage = styled.img` - width: ${(props) => props.width || 3}rem; - height: ${(props) => props.height || 3}rem; - border-radius: 1rem; - border-width: 0.3rem; - filter: ${(props) => props.brightness || "brightness(100%)"}; -`; - -const UserName = styled.div` - font-size: 0.7rem; - padding-top: 0.2rem; -`; - -const SelectUser = styled.div` - -position: absolute, -top: 3.5rem, -color: "#fff", -font-size: "0.7rem", -margin: "0.5rem", -`; - -export { UserProfile, UserProfileImage }; diff --git a/src/components/style.tsx b/src/components/style.tsx new file mode 100644 index 0000000..eb6a92d --- /dev/null +++ b/src/components/style.tsx @@ -0,0 +1,80 @@ +import { Link } from "react-router-dom"; +import styled from "styled-components"; + +interface imageStyle { + brightness?: string; + width?: number; + height?: number; +} + +const StyledLink = styled(Link)` + text-decoration: none; + color: #000; +`; + +const UserProfileImage = styled.img` + width: ${(props) => props.width || 3}rem; + height: ${(props) => props.height || 3}rem; + border-radius: 1rem; + border-width: 0.3rem; + filter: ${(props) => props.brightness || "brightness(100%)"}; +`; + +const Container = styled.div` + display: flex; + position: relative; +`; + +const ListWrap = styled.div` + box-sizing: border-box; + padding: 1rem; + width: 19rem; +`; + +const ListDiv = styled.div` + font-weight: bold; + font-size: 1rem; + padding-bottom: 1rem; +`; + +// Profile Style +const ProfileContainer = styled.div` + display: flex; + padding: 5px 0; + width: 100%; +`; +const ProfileImg = styled.img<{ picSize?: number }>` + width: ${(props) => props.picSize || 3}rem; + height: ${(props) => props.picSize || 3}rem; + border-radius: 1rem; +`; +const NameWrap = styled.div` + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + box-sizing: border-box; + padding: 7px; + width: 100%; +`; +const Name = styled.div` + font-size: 13px; + padding-bottom: 3px; +`; +const Msg = styled.div` + color: #7d7d7d; + font-size: 11px; +`; + +export { + StyledLink, + UserProfileImage, + Container, + ListWrap, + ListDiv, + ProfileContainer, + ProfileImg, + Name, + NameWrap, + Msg, +}; diff --git a/src/interface/chat.tsx b/src/interface/interface.tsx similarity index 100% rename from src/interface/chat.tsx rename to src/interface/interface.tsx diff --git a/src/pages/ChatList.tsx b/src/pages/ChatList.tsx index 00fb482..a5ca85f 100644 --- a/src/pages/ChatList.tsx +++ b/src/pages/ChatList.tsx @@ -1,9 +1,8 @@ -import { Link } from "react-router-dom"; import { useRecoilState } from "recoil"; -import styled from "styled-components"; -import ChatListItem from "../components/ChatLIstItem"; +import ChatListItem from "../components/list/ChatLIstItem"; import Navigation from "../components/Navi"; -import { roomId } from "../store/recoil/recoil"; +import { Container, ListDiv, ListWrap, StyledLink } from "../components/style"; +import { currentId, roomId } from "../store/recoil/recoil"; import UserData from "../store/UserData.json"; const ChatList = () => { @@ -13,11 +12,11 @@ const ChatList = () => { return ( - -
채팅
+ + 채팅 {userData.map((people) => people.userId != 0 ? ( - { }} > - + ) : ( <> ) )} -
+
); }; -const Container = styled.div` - display: flex; -`; - -const ChatListWrap = styled.div` - box-sizing: border-box; - padding: 15px; -`; - -const Div = styled.div` - font-weight: bold; - font-size: 1rem; - padding-bottom: 1rem; -`; - export default ChatList; diff --git a/src/pages/ChatRoom.tsx b/src/pages/ChatRoom.tsx index 0576a9f..f786333 100644 --- a/src/pages/ChatRoom.tsx +++ b/src/pages/ChatRoom.tsx @@ -1,8 +1,6 @@ -import { useRecoilValue } from "recoil"; import ChatBody from "../components/ChattingRoom/ChatBody"; import ChatRoomHeader from "../components/ChattingRoom/ChatRoomHeader"; -import { SendMessage } from "../components/ChattingRoom/SendMessage"; -import { roomId } from "../store/recoil/recoil"; +import SendMessage from "../components/ChattingRoom/SendMessage"; const ChatRoom = () => { return ( diff --git a/src/pages/FriendsList.tsx b/src/pages/FriendsList.tsx index 1fbae8e..ace1420 100644 --- a/src/pages/FriendsList.tsx +++ b/src/pages/FriendsList.tsx @@ -1,12 +1,12 @@ import { useState } from "react"; -import { Link } from "react-router-dom"; import { useRecoilState } from "recoil"; import styled from "styled-components"; import Navigation from "../components/Navi"; -import FriendsProfile from "../components/profile/FriendsProfile"; +import FriendsProfile from "../components/list/FriendsProfile"; import useInput from "../hooks/useInput"; import { roomId } from "../store/recoil/recoil"; import UserData from "../store/UserData.json"; +import { Container, ListWrap, StyledLink } from "../components/style"; interface DivStyle { color?: string; @@ -25,7 +25,7 @@ const FriendsList = () => { return ( - + <>
친구
{ )} -
+
); }; -const Container = styled.div` - display: flex; - position: relative; -`; - -const FriendListWrap = styled.div` - box-sizing: border-box; - padding: 1rem; - width: 18.5rem; -`; - const Div = styled.div` color: ${(props) => props.color || "#000"}; font-weight: bold; @@ -123,16 +112,10 @@ const Search = styled.img` right: 1rem; top: 1.1rem; `; - const Input = styled.input` width: 100%; - margin-top: 1.5rem; + margin: 1.5rem 0; background: #f2f2f2; `; -const StyledLink = styled(Link)` - textdecoration: none; - color: #000; -`; - export default FriendsList; diff --git a/src/pages/Setting.tsx b/src/pages/Setting.tsx index a9cbe4b..79d58c6 100644 --- a/src/pages/Setting.tsx +++ b/src/pages/Setting.tsx @@ -1,36 +1,32 @@ import styled from "styled-components"; import Navigation from "../components/Navi"; +import { Container, ListDiv, ListWrap } from "../components/style"; const Setting = () => { return ( - -
더보기
+ + 더보기 +
아래 링크로 이동해보세요
window.open("https://github.com/chaeyeonan")}> GitHub
window.open("https://12yeonii.tistory.com/")}> Tistory
-
+
); }; -const Container = styled.div` - display: flex; -`; - -const SettingWrap = styled.div` - box-sizing: border-box; - padding: 15px; -`; - -const Div = styled.div` - font-weight: bold; - font-size: 1rem; - padding-bottom: 1rem; +const Div = styled.div<{ size?: number }>` + font-size: ${(props) => props.size || 1.3}rem; + width: 100%; + text-align: center; + padding: 2rem 0; + color: #1c1c1c; + border-bottom: 1px solid #bdbdbd; `; export default Setting; diff --git a/src/store/recoil/recoil.tsx b/src/store/recoil/recoil.tsx index 0f644af..8c12b82 100644 --- a/src/store/recoil/recoil.tsx +++ b/src/store/recoil/recoil.tsx @@ -1,6 +1,6 @@ import { atom, selector } from "recoil"; import Message from "../Message.json"; -import { chat, chatRoom } from "../../interface/chat"; +import { chat, chatRoom } from "../../interface/interface"; export const currentId = atom({ key: "currentId", From c7aefc127b2bf42f1692b793ccc3369424ceb83f Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 4 Nov 2022 18:53:13 +0900 Subject: [PATCH 21/23] refactor: refactor last week code --- src/components/ChattingRoom/ChatBody.tsx | 1 + src/components/ChattingRoom/ChatBubble.tsx | 3 ++- src/components/ChattingRoom/ChatRoomHeader.tsx | 1 + src/pages/FriendsList.tsx | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/ChattingRoom/ChatBody.tsx b/src/components/ChattingRoom/ChatBody.tsx index 9b71a2c..70fd451 100644 --- a/src/components/ChattingRoom/ChatBody.tsx +++ b/src/components/ChattingRoom/ChatBody.tsx @@ -25,6 +25,7 @@ function ChatBody() { {chatting[room - 1].chat.map((chat: chat) => ( ` display: flex; - justify-content: ${(props) => props.justifyContent || "flex-start"}; + justify-content: ${((props) => props.justifyContent) || "flex-start"}; + // justify-content: ${({ justifyContent }) => justifyContent || "flex-start"}; `; const Bubble = styled.div` diff --git a/src/components/ChattingRoom/ChatRoomHeader.tsx b/src/components/ChattingRoom/ChatRoomHeader.tsx index 680143c..83c7718 100644 --- a/src/components/ChattingRoom/ChatRoomHeader.tsx +++ b/src/components/ChattingRoom/ChatRoomHeader.tsx @@ -19,6 +19,7 @@ function ChatRoomHeader() { {userData.map((user) => user.userId === 0 || user.userId === room ? ( { }} > Date: Fri, 4 Nov 2022 18:57:19 +0900 Subject: [PATCH 22/23] [fix]: render time --- src/components/ChattingRoom/SendMessage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ChattingRoom/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx index 8835fc2..76af52a 100644 --- a/src/components/ChattingRoom/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -22,7 +22,7 @@ function SendMessage() { senderId: sender, receiverId: sender === 0 ? room : 0, text: text, - time: time.getHours() + ":" + time.getMinutes(), + time: ("0" + time.getHours()).slice(-2) + ":" + time.getMinutes(), }; const newChatting: chatRoom = { From 90dafa0b8e4bad786a70faf2139ef068d83255d5 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 4 Nov 2022 19:21:57 +0900 Subject: [PATCH 23/23] [feat]: initial page --- src/App.tsx | 4 +++- src/components/Navi.tsx | 4 ++-- src/pages/InitialPage.tsx | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 src/pages/InitialPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 82b0679..c12f4e6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,12 +4,14 @@ import FriendsList from "./pages/FriendsList"; import ChatList from "./pages/ChatList"; import Setting from "./pages/Setting"; import ChatRoom from "./pages/ChatRoom"; +import InitialPage from "./pages/InitialPage"; function App() { return ( - } /> + } /> + } /> } /> } /> } /> diff --git a/src/components/Navi.tsx b/src/components/Navi.tsx index cc5e140..48888b5 100644 --- a/src/components/Navi.tsx +++ b/src/components/Navi.tsx @@ -7,8 +7,8 @@ const Navigation = () => { return (

)ErX_3z(5i~$1% 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 Ujp-8lUNG=uX>M!AH1&x4AFTPSEC2ui literal 0 HcmV?d00001 diff --git a/public/img/user5.png b/public/img/user5.png new file mode 100644 index 0000000000000000000000000000000000000000..72d37d4678c6947f3840c9a4564139deeb7da988 GIT binary patch literal 105762 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

+ ); } -const Header = styled.div` - margin: 0 auto; - background: #ffffff; - height: 6rem; - width: 26rem; - border-radius: 0.5rem 0.5rem 0rem 0rem; -`; - export default ChatRoom; diff --git a/src/store/UserData.json b/src/store/UserData.json new file mode 100644 index 0000000..b0649fa --- /dev/null +++ b/src/store/UserData.json @@ -0,0 +1,16 @@ +{ + "users": [ + { + "userId": 1, + "userName": "콩쥐", + "profileImage1": "https://ibb.co/dsNJs1C", + "profileImage": "user1.png" + }, + { + "userId": 2, + "userName": "팥쥐", + "profileImage1": "https://ibb.co/rF7c9m2", + "profileImage": "user2.jpg" + } + ] +} diff --git a/tsconfig.json b/tsconfig.json index a273b0c..9d379a3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,7 @@ { "compilerOptions": { "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], + "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, @@ -20,7 +16,5 @@ "noEmit": true, "jsx": "react-jsx" }, - "include": [ - "src" - ] + "include": ["src"] } From 779b0e2bd18f7430f3e72dc07c1d212e2a45f137 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Thu, 29 Sep 2022 15:24:21 +0900 Subject: [PATCH 03/23] feat: add message.json file --- .../{ => ChattingRoom}/ChatBody.tsx | 2 +- .../{ => ChattingRoom}/ChatBubble.tsx | 1 - .../{ => ChattingRoom}/ChatRoomHeader.tsx | 11 ++++--- .../{ => ChattingRoom}/SendMessage.tsx | 13 ++++++--- src/components/UserProfile.tsx | 11 ++++++- src/interface/ChatText.tsx | 3 ++ src/pages/ChatRoom.tsx | 6 ++-- src/store/Message.json | 29 +++++++++++++++++++ 8 files changed, 62 insertions(+), 14 deletions(-) rename src/components/{ => ChattingRoom}/ChatBody.tsx (89%) rename src/components/{ => ChattingRoom}/ChatBubble.tsx (94%) rename src/components/{ => ChattingRoom}/ChatRoomHeader.tsx (63%) rename src/components/{ => ChattingRoom}/SendMessage.tsx (81%) create mode 100644 src/store/Message.json diff --git a/src/components/ChatBody.tsx b/src/components/ChattingRoom/ChatBody.tsx similarity index 89% rename from src/components/ChatBody.tsx rename to src/components/ChattingRoom/ChatBody.tsx index dbf55eb..b989da1 100644 --- a/src/components/ChatBody.tsx +++ b/src/components/ChattingRoom/ChatBody.tsx @@ -1,5 +1,5 @@ import styled from "styled-components"; -import ChatText from "../interface/ChatText"; +import ChatText from "../../interface/ChatText"; import { ReceiverBubble, SenderBubble } from "./ChatBubble"; function ChatBody() { diff --git a/src/components/ChatBubble.tsx b/src/components/ChattingRoom/ChatBubble.tsx similarity index 94% rename from src/components/ChatBubble.tsx rename to src/components/ChattingRoom/ChatBubble.tsx index 1dacc9b..0b61ee3 100644 --- a/src/components/ChatBubble.tsx +++ b/src/components/ChattingRoom/ChatBubble.tsx @@ -1,5 +1,4 @@ import styled from "styled-components"; -import ChatText from "../interface/ChatText"; function ReceiverBubble() { return ( diff --git a/src/components/ChatRoomHeader.tsx b/src/components/ChattingRoom/ChatRoomHeader.tsx similarity index 63% rename from src/components/ChatRoomHeader.tsx rename to src/components/ChattingRoom/ChatRoomHeader.tsx index afb60db..d25f889 100644 --- a/src/components/ChatRoomHeader.tsx +++ b/src/components/ChattingRoom/ChatRoomHeader.tsx @@ -1,15 +1,18 @@ import styled from "styled-components"; -import UserData from "../store/UserData.json"; -import UserProfile from "./UserProfile"; +import UserData from "../../store/UserData.json"; +import UserProfile from "../UserProfile"; function ChatRoomHeader() { let userData = UserData.users; - console.log(userData); return (
{userData.map((user) => ( - + ))}
); diff --git a/src/components/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx similarity index 81% rename from src/components/SendMessage.tsx rename to src/components/ChattingRoom/SendMessage.tsx index 623fd3b..0b4fdf0 100644 --- a/src/components/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -1,17 +1,22 @@ import styled from "styled-components"; import { useState, useEffect } from "react"; -import ChatText from "../interface/ChatText"; +import ChatText from "../../interface/ChatText"; -let chatting: ChatText; +//let chatting: ChatText; function SendMessage() { const [value, setValue] = useState(""); const [text, setText] = useState([]); function AddText(value: any) { - chatting = { + /* chatting = { + userId: 1, + textId: 0, + roomId: 1, text: value, }; + console.log(chatting);*/ + setText(text.concat(value)); } function onSend(e: any) { @@ -53,4 +58,4 @@ const SendButton = styled.button` border-width: 0.01rem; `; -export { SendMessage, chatting }; +export { SendMessage }; diff --git a/src/components/UserProfile.tsx b/src/components/UserProfile.tsx index 9c02fce..70f3d71 100644 --- a/src/components/UserProfile.tsx +++ b/src/components/UserProfile.tsx @@ -1,15 +1,24 @@ +import { useState } from "react"; import styled from "styled-components"; function UserProfile({ userImage, userName, + userId, }: { userImage: any; userName: string; + userId: number; }) { + const [sender, setSender] = useState(1); + + function onClick() { + setSender(userId); + } + return ( - + {userName} ); diff --git a/src/interface/ChatText.tsx b/src/interface/ChatText.tsx index d97ef0f..238a87c 100644 --- a/src/interface/ChatText.tsx +++ b/src/interface/ChatText.tsx @@ -1,4 +1,7 @@ interface ChatText { + userId: number; + textId: number; + roomId: number; text: string; } diff --git a/src/pages/ChatRoom.tsx b/src/pages/ChatRoom.tsx index 05b4f6b..24864aa 100644 --- a/src/pages/ChatRoom.tsx +++ b/src/pages/ChatRoom.tsx @@ -1,6 +1,6 @@ -import ChatBody from "../components/ChatBody"; -import ChatRoomHeader from "../components/ChatRoomHeader"; -import { SendMessage } from "../components/SendMessage"; +import ChatBody from "../components/ChattingRoom/ChatBody"; +import ChatRoomHeader from "../components/ChattingRoom/ChatRoomHeader"; +import { SendMessage } from "../components/ChattingRoom/SendMessage"; function ChatRoom() { return ( diff --git a/src/store/Message.json b/src/store/Message.json new file mode 100644 index 0000000..fe590ee --- /dev/null +++ b/src/store/Message.json @@ -0,0 +1,29 @@ +[ + { + "id": 1, + "text": "머해", + "user": { + "id": 2, + "name": "팥쥐", + "profileImage": "user2.jpg" + } + }, + { + "id": 2, + "text": "놀쟈", + "user": { + "id": 2, + "name": "팥쥐", + "profileImage": "user2.jpg" + } + }, + { + "id": 3, + "text": "구래", + "user": { + "id": 1, + "name": "팥쥐", + "profileImage": "user2.jpg" + } + } +] From 8283f08a102080f3d2970bd35db78c2bad1f2208 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Thu, 29 Sep 2022 15:34:23 +0900 Subject: [PATCH 04/23] feat: custom hook & delete: interface --- src/components/ChattingRoom/ChatBody.tsx | 1 - src/components/ChattingRoom/SendMessage.tsx | 16 ++++++++-------- src/hooks/useInput.tsx | 17 +++++++++++++++++ src/interface/ChatText.tsx | 8 -------- src/store/UserData.json | 2 -- 5 files changed, 25 insertions(+), 19 deletions(-) create mode 100644 src/hooks/useInput.tsx delete mode 100644 src/interface/ChatText.tsx diff --git a/src/components/ChattingRoom/ChatBody.tsx b/src/components/ChattingRoom/ChatBody.tsx index b989da1..8d99610 100644 --- a/src/components/ChattingRoom/ChatBody.tsx +++ b/src/components/ChattingRoom/ChatBody.tsx @@ -1,5 +1,4 @@ import styled from "styled-components"; -import ChatText from "../../interface/ChatText"; import { ReceiverBubble, SenderBubble } from "./ChatBubble"; function ChatBody() { diff --git a/src/components/ChattingRoom/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx index 0b4fdf0..2f8978b 100644 --- a/src/components/ChattingRoom/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -1,14 +1,13 @@ import styled from "styled-components"; import { useState, useEffect } from "react"; -import ChatText from "../../interface/ChatText"; +import useInput from "../../hooks/useInput"; //let chatting: ChatText; function SendMessage() { - const [value, setValue] = useState(""); - const [text, setText] = useState([]); + const { text, handleChange, resetText } = useInput(""); - function AddText(value: any) { + function AddText(text: string) { /* chatting = { userId: 1, textId: 0, @@ -16,18 +15,19 @@ function SendMessage() { text: value, }; console.log(chatting);*/ - setText(text.concat(value)); + + console.log(text); } function onSend(e: any) { e.preventDefault(); - AddText(value); - setValue(""); + AddText(text); + resetText(); } return ( - setValue(e.target.value)} value={value} /> + 전송 ); diff --git a/src/hooks/useInput.tsx b/src/hooks/useInput.tsx new file mode 100644 index 0000000..3a08923 --- /dev/null +++ b/src/hooks/useInput.tsx @@ -0,0 +1,17 @@ +import React, { useState } from "react"; + +function useInput(initialText: string) { + const [text, setText] = useState(initialText); + + const handleChange = (e: React.ChangeEvent): void => { + setText(e.target.value); + }; + + const resetText = (): void => { + setText(""); + }; + + return { text, handleChange, resetText }; +} + +export default useInput; diff --git a/src/interface/ChatText.tsx b/src/interface/ChatText.tsx deleted file mode 100644 index 238a87c..0000000 --- a/src/interface/ChatText.tsx +++ /dev/null @@ -1,8 +0,0 @@ -interface ChatText { - userId: number; - textId: number; - roomId: number; - text: string; -} - -export default ChatText; diff --git a/src/store/UserData.json b/src/store/UserData.json index b0649fa..56cfe95 100644 --- a/src/store/UserData.json +++ b/src/store/UserData.json @@ -3,13 +3,11 @@ { "userId": 1, "userName": "콩쥐", - "profileImage1": "https://ibb.co/dsNJs1C", "profileImage": "user1.png" }, { "userId": 2, "userName": "팥쥐", - "profileImage1": "https://ibb.co/rF7c9m2", "profileImage": "user2.jpg" } ] From e678ec55f5f9aa2744b4643d259930eb5c87b8ec Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 30 Sep 2022 09:02:13 +0900 Subject: [PATCH 05/23] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 38 ++++++++++++++++++++ package.json | 1 + src/components/ChattingRoom/SendMessage.tsx | 11 ------ src/components/UserProfile.tsx | 39 +++++++++++++++++++-- src/index.tsx | 15 +++++--- src/interface/chat.tsx | 8 +++++ src/store/Message.json | 33 +++++++---------- src/store/recoil/recoil.tsx | 7 ++++ 8 files changed, 112 insertions(+), 40 deletions(-) create mode 100644 src/interface/chat.tsx create mode 100644 src/store/recoil/recoil.tsx diff --git a/package-lock.json b/package-lock.json index 331ecbc..0fc3ceb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", + "recoil": "^0.7.5", "styled-components": "^5.3.6", "typescript": "^4.8.4", "web-vitals": "^2.1.4" @@ -8279,6 +8280,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hamt_plus": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz", + "integrity": "sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==" + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -13982,6 +13988,25 @@ "node": ">=8.10.0" } }, + "node_modules/recoil": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.5.tgz", + "integrity": "sha512-GVShsj5+M/2GULWBs5WBJGcsNis/d3YvDiaKjYh3mLKXftjtmk9kfaQ8jwjoIXySCwn8/RhgJ4Sshwgzj2UpFA==", + "dependencies": { + "hamt_plus": "1.0.2" + }, + "peerDependencies": { + "react": ">=16.13.1" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, "node_modules/recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", @@ -22586,6 +22611,11 @@ "duplexer": "^0.1.2" } }, + "hamt_plus": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz", + "integrity": "sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==" + }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -26535,6 +26565,14 @@ "picomatch": "^2.2.1" } }, + "recoil": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.5.tgz", + "integrity": "sha512-GVShsj5+M/2GULWBs5WBJGcsNis/d3YvDiaKjYh3mLKXftjtmk9kfaQ8jwjoIXySCwn8/RhgJ4Sshwgzj2UpFA==", + "requires": { + "hamt_plus": "1.0.2" + } + }, "recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", diff --git a/package.json b/package.json index 48c3b2a..e8175a6 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", + "recoil": "^0.7.5", "styled-components": "^5.3.6", "typescript": "^4.8.4", "web-vitals": "^2.1.4" diff --git a/src/components/ChattingRoom/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx index 2f8978b..90b9597 100644 --- a/src/components/ChattingRoom/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -1,21 +1,10 @@ import styled from "styled-components"; -import { useState, useEffect } from "react"; import useInput from "../../hooks/useInput"; -//let chatting: ChatText; - function SendMessage() { const { text, handleChange, resetText } = useInput(""); function AddText(text: string) { - /* chatting = { - userId: 1, - textId: 0, - roomId: 1, - text: value, - }; - console.log(chatting);*/ - console.log(text); } diff --git a/src/components/UserProfile.tsx b/src/components/UserProfile.tsx index 70f3d71..80dd4e9 100644 --- a/src/components/UserProfile.tsx +++ b/src/components/UserProfile.tsx @@ -1,5 +1,7 @@ import { useState } from "react"; +import { useRecoilState } from "recoil"; import styled from "styled-components"; +import { currentId } from "../store/recoil/recoil"; function UserProfile({ userImage, @@ -10,7 +12,7 @@ function UserProfile({ userName: string; userId: number; }) { - const [sender, setSender] = useState(1); + const [sender, setSender] = useRecoilState(currentId); function onClick() { setSender(userId); @@ -18,7 +20,28 @@ function UserProfile({ return ( - + {userId === sender ? ( + <> + +
+ 선택중 +
+ + ) : ( + + )} {userName}
); @@ -32,11 +55,12 @@ const UserContainer = styled.div` margin-left: 1rem; `; -const UserProfileImage = styled.img` +const UserProfileImage = styled.img<{ brightness?: string }>` width: 3rem; height: 3rem; border-radius: 1rem; border-width: 0.3rem; + filter: ${(props) => props.brightness || "brightness(100%)"}; `; const UserName = styled.div` @@ -44,4 +68,13 @@ const UserName = styled.div` padding-top: 0.2rem; `; +const SelectUser = styled.div` + +position: absolute, +top: 3.5rem, +color: "#fff", +font-size: "0.7rem", +margin: "0.5rem", +`; + export default UserProfile; diff --git a/src/index.tsx b/src/index.tsx index 086c86b..6c80f11 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,10 +1,15 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import App from './App'; +import React from "react"; +import ReactDOM from "react-dom/client"; +import { RecoilRoot } from "recoil"; +import App from "./App"; -const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); +const root = ReactDOM.createRoot( + document.getElementById("root") as HTMLElement +); root.render( - + + + ); diff --git a/src/interface/chat.tsx b/src/interface/chat.tsx new file mode 100644 index 0000000..58a1db9 --- /dev/null +++ b/src/interface/chat.tsx @@ -0,0 +1,8 @@ +interface chat { + chatId: number; + senderId: number; + receiverId: number; + text: string; +} + +export default chat; diff --git a/src/store/Message.json b/src/store/Message.json index fe590ee..56f2f66 100644 --- a/src/store/Message.json +++ b/src/store/Message.json @@ -1,29 +1,20 @@ [ { - "id": 1, - "text": "머해", - "user": { - "id": 2, - "name": "팥쥐", - "profileImage": "user2.jpg" - } + "chatId": 1, + "senderId": 1, + "receiverId": 2, + "text": "머해" }, { - "id": 2, - "text": "놀쟈", - "user": { - "id": 2, - "name": "팥쥐", - "profileImage": "user2.jpg" - } + "chatId": 2, + "senderId": 1, + "receiverId": 2, + "text": "놀쟈" }, { - "id": 3, - "text": "구래", - "user": { - "id": 1, - "name": "팥쥐", - "profileImage": "user2.jpg" - } + "chatId": 3, + "senderId": 2, + "receiverId": 1, + "text": "구래" } ] diff --git a/src/store/recoil/recoil.tsx b/src/store/recoil/recoil.tsx new file mode 100644 index 0000000..ea7dbdf --- /dev/null +++ b/src/store/recoil/recoil.tsx @@ -0,0 +1,7 @@ +import { atom } from "recoil"; +import UserData from "../UserData.json"; + +export const currentId = atom({ + key: "currentId", + default: /*UserData.users*/ 1, +}); From b3ab31aa4438ee667f83fc769b89cc3eca6d76d5 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 30 Sep 2022 14:53:28 +0900 Subject: [PATCH 06/23] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=EC=97=90?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=ED=99=94=EB=A9=B4=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ChattingRoom/ChatBody.tsx | 19 +++++-- src/components/ChattingRoom/ChatBubble.tsx | 62 +++++++++++++--------- src/store/Message.json | 12 ++--- src/store/recoil/recoil.tsx | 8 ++- 4 files changed, 65 insertions(+), 36 deletions(-) diff --git a/src/components/ChattingRoom/ChatBody.tsx b/src/components/ChattingRoom/ChatBody.tsx index 8d99610..3a86f5b 100644 --- a/src/components/ChattingRoom/ChatBody.tsx +++ b/src/components/ChattingRoom/ChatBody.tsx @@ -1,11 +1,22 @@ +import { useRecoilState } from "recoil"; import styled from "styled-components"; -import { ReceiverBubble, SenderBubble } from "./ChatBubble"; +import chat from "../../interface/chat"; +import { chatList } from "../../store/recoil/recoil"; +import { ChatBubble } from "./ChatBubble"; function ChatBody() { + const chatting = useRecoilState(chatList); + return ( - - + {chatting[0].map((chat: chat) => ( + + ))} ); } @@ -16,6 +27,8 @@ const ChatBodyContainer = styled.div` height: 30rem; width: 26rem; justify-content: flex-start; + display: flex; + flex-direction: column; `; export default ChatBody; diff --git a/src/components/ChattingRoom/ChatBubble.tsx b/src/components/ChattingRoom/ChatBubble.tsx index 0b61ee3..a5c46f6 100644 --- a/src/components/ChattingRoom/ChatBubble.tsx +++ b/src/components/ChattingRoom/ChatBubble.tsx @@ -1,42 +1,52 @@ +import { useRecoilState } from "recoil"; import styled from "styled-components"; +import chat from "../../interface/chat"; +import { currentId } from "../../store/recoil/recoil"; -function ReceiverBubble() { - return ( - <> - gg - - ); +interface bubbleStyle { + color?: string; + flexDirection?: string; } -function SenderBubble() { +function ChatBubble({ chatId, senderId, receiverId, text }: chat) { + const currentUser = useRecoilState(currentId); + return ( <> - 안녕 + {currentUser[0] === senderId ? ( + + {text} + + ) : ( + + + {text} + + + )} ); } -const LeftBubble = styled.div` - position: relative; - display: inline-block; - max-width: calc(100% - 70px); - background-color: #ddd; - padding: 10px; - margin: 7px; - font-size: 13px; - border-radius: 10px; +const BubbleBox = styled.div<{ justifyContent?: string }>` + display: flex; + width: 25rem; + height: 2rem; + margin-top: 0.5rem; + margin-bottom: 0.5rem; + justify-content: ${(props) => props.justifyContent || "flex-start"}; `; -const RightBubble = styled.div` - position: relative; +const Bubble = styled.div` display: flex; - max-width: calc(100% - 70px); - background-color: #f9eb54; - padding: 10px; - margin: 7px; + width: auto; + height: 1.2rem; + border-radius: 0.3rem; + background-color: ${(props) => props.color || "#f9eb54"}; font-size: 13px; - border-radius: 10px; - flex-direction: row-reverse; + flex-direction: ${(props) => props.flexDirection || "row-reverse"}; + padding: 10px; + margin: 0.5rem; `; -export { ReceiverBubble, SenderBubble }; +export { ChatBubble }; diff --git a/src/store/Message.json b/src/store/Message.json index 56f2f66..1662d42 100644 --- a/src/store/Message.json +++ b/src/store/Message.json @@ -1,20 +1,20 @@ [ { "chatId": 1, - "senderId": 1, - "receiverId": 2, + "senderId": 2, + "receiverId": 1, "text": "머해" }, { "chatId": 2, - "senderId": 1, - "receiverId": 2, + "senderId": 2, + "receiverId": 1, "text": "놀쟈" }, { "chatId": 3, - "senderId": 2, - "receiverId": 1, + "senderId": 1, + "receiverId": 2, "text": "구래" } ] diff --git a/src/store/recoil/recoil.tsx b/src/store/recoil/recoil.tsx index ea7dbdf..4e12eca 100644 --- a/src/store/recoil/recoil.tsx +++ b/src/store/recoil/recoil.tsx @@ -1,7 +1,13 @@ import { atom } from "recoil"; import UserData from "../UserData.json"; +import Message from "../Message.json"; -export const currentId = atom({ +export const currentId = atom({ key: "currentId", default: /*UserData.users*/ 1, }); + +export const chatList = atom({ + key: "chatList", + default: Message, +}); From e499bdbc4c921d5e53d1cc0158e9717a0ec2d458 Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 30 Sep 2022 15:10:44 +0900 Subject: [PATCH 07/23] =?UTF-8?q?feat:=20=EB=A9=94=EC=84=B8=EC=A7=80=20?= =?UTF-8?q?=EC=A0=84=EC=86=A1=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ChattingRoom/SendMessage.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components/ChattingRoom/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx index 90b9597..51458fd 100644 --- a/src/components/ChattingRoom/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -1,11 +1,25 @@ +import { useRecoilState } from "recoil"; import styled from "styled-components"; import useInput from "../../hooks/useInput"; +import chat from "../../interface/chat"; +import { chatList, currentId } from "../../store/recoil/recoil"; function SendMessage() { const { text, handleChange, resetText } = useInput(""); + const [chatting, setChatting] = useRecoilState(chatList); + const sender = useRecoilState(currentId)[0]; + + const newChat: chat = { + chatId: Date.now(), + senderId: sender, + receiverId: sender === 1 ? 2 : 1, + text: text, + }; function AddText(text: string) { - console.log(text); + if (text.trim()) { + setChatting(chatting.concat(newChat)); + } } function onSend(e: any) { From bbd28425bdabeda7db31d5e4ce68259edd1ae92a Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Fri, 30 Sep 2022 22:44:10 +0900 Subject: [PATCH 08/23] =?UTF-8?q?style:=20=EB=94=94=EC=9E=90=EC=9D=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/img/{user2.jpg => user2.png} | Bin src/App.tsx | 2 +- src/components/ChattingRoom/ChatBody.tsx | 32 +++++++-- src/components/ChattingRoom/ChatBubble.tsx | 62 ++++++++++++------ .../ChattingRoom/ChatRoomHeader.tsx | 3 +- src/components/ChattingRoom/SendMessage.tsx | 10 +-- src/components/UserProfile.tsx | 21 +++--- src/interface/chat.tsx | 1 + src/store/Message.json | 9 ++- src/store/UserData.json | 4 +- 10 files changed, 100 insertions(+), 44 deletions(-) rename public/img/{user2.jpg => user2.png} (100%) diff --git a/public/img/user2.jpg b/public/img/user2.png similarity index 100% rename from public/img/user2.jpg rename to public/img/user2.png diff --git a/src/App.tsx b/src/App.tsx index 66d463d..c76811d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -14,7 +14,7 @@ const Container = styled.div` margin: 0 auto; margin-top: 2rem; border-radius: 0.5rem; - width: 26rem; + width: 24rem; `; export default App; diff --git a/src/components/ChattingRoom/ChatBody.tsx b/src/components/ChattingRoom/ChatBody.tsx index 3a86f5b..50b62a3 100644 --- a/src/components/ChattingRoom/ChatBody.tsx +++ b/src/components/ChattingRoom/ChatBody.tsx @@ -1,20 +1,34 @@ +import { useRef, useEffect } from "react"; import { useRecoilState } from "recoil"; import styled from "styled-components"; import chat from "../../interface/chat"; import { chatList } from "../../store/recoil/recoil"; -import { ChatBubble } from "./ChatBubble"; +import ChatBubble from "./ChatBubble"; function ChatBody() { const chatting = useRecoilState(chatList); + const scrollRef = useRef(null); + + const scrollBottom = () => { + if (scrollRef.current) { + scrollRef.current.scrollTop = scrollRef.current.scrollHeight; + } + }; + + useEffect(() => { + scrollBottom(); + }, [chatting]); + return ( - + {chatting[0].map((chat: chat) => ( ))} @@ -22,13 +36,21 @@ function ChatBody() { } const ChatBodyContainer = styled.div` - overflow: auto; - background: #a8c0d6; + overflow-y: auto; + background: pink; height: 30rem; - width: 26rem; justify-content: flex-start; display: flex; flex-direction: column; + padding: 1rem; + + &::-webkit-scrollbar { + width: 4px; + } + &::-webkit-scrollbar-thumb { + border-radius: 2px; + background: #7d7d7d; + } `; export default ChatBody; diff --git a/src/components/ChattingRoom/ChatBubble.tsx b/src/components/ChattingRoom/ChatBubble.tsx index a5c46f6..a455306 100644 --- a/src/components/ChattingRoom/ChatBubble.tsx +++ b/src/components/ChattingRoom/ChatBubble.tsx @@ -2,51 +2,75 @@ import { useRecoilState } from "recoil"; import styled from "styled-components"; import chat from "../../interface/chat"; import { currentId } from "../../store/recoil/recoil"; +import { UserProfileImage } from "../UserProfile"; +import UserData from "../../store/UserData.json"; interface bubbleStyle { color?: string; flexDirection?: string; } -function ChatBubble({ chatId, senderId, receiverId, text }: chat) { +function ChatBubble({ chatId, senderId, receiverId, text, time }: chat) { const currentUser = useRecoilState(currentId); return ( <> {currentUser[0] === senderId ? ( - - {text} - + + {time} +
+ {UserData.users[senderId - 1].userName} + {text} +
+
) : ( - - - {text} - - + + +
+ + {UserData.users[senderId - 1].userName} + + + {text} + +
+ {time} +
)} ); } -const BubbleBox = styled.div<{ justifyContent?: string }>` +const BubbleList = styled.div<{ justifyContent?: string }>` display: flex; - width: 25rem; - height: 2rem; - margin-top: 0.5rem; - margin-bottom: 0.5rem; justify-content: ${(props) => props.justifyContent || "flex-start"}; `; const Bubble = styled.div` display: flex; width: auto; - height: 1.2rem; border-radius: 0.3rem; - background-color: ${(props) => props.color || "#f9eb54"}; + background-color: ${(props) => props.color || "#dee2e6"}; font-size: 13px; flex-direction: ${(props) => props.flexDirection || "row-reverse"}; - padding: 10px; - margin: 0.5rem; + padding: 8px; `; -export { ChatBubble }; +const UserName = styled.div<{ flex?: string }>` + font-size: 0.5rem; + margin-bottom: 0.1rem; + display: flex; + flex-direction: ${(props) => props.flex || "row-reverse"}; +`; + +const TimeStyle = styled.div` + font-size: 0.4rem; + margin-top: 2rem; + padding: 0.3rem; +`; + +export default ChatBubble; diff --git a/src/components/ChattingRoom/ChatRoomHeader.tsx b/src/components/ChattingRoom/ChatRoomHeader.tsx index d25f889..ccc7795 100644 --- a/src/components/ChattingRoom/ChatRoomHeader.tsx +++ b/src/components/ChattingRoom/ChatRoomHeader.tsx @@ -1,6 +1,6 @@ import styled from "styled-components"; import UserData from "../../store/UserData.json"; -import UserProfile from "../UserProfile"; +import { UserProfile } from "../UserProfile"; function ChatRoomHeader() { let userData = UserData.users; @@ -22,7 +22,6 @@ const Header = styled.div` margin: 0 auto; background: #ffffff; height: 6rem; - width: 26rem; border-radius: 0.5rem 0.5rem 0rem 0rem; display: flex; flex-direction: row; diff --git a/src/components/ChattingRoom/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx index 51458fd..9d125e3 100644 --- a/src/components/ChattingRoom/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -9,11 +9,14 @@ function SendMessage() { const [chatting, setChatting] = useRecoilState(chatList); const sender = useRecoilState(currentId)[0]; + const time = new Date(); + const newChat: chat = { chatId: Date.now(), senderId: sender, receiverId: sender === 1 ? 2 : 1, text: text, + time: time.getHours() + ":" + time.getMinutes(), }; function AddText(text: string) { @@ -40,25 +43,24 @@ const InputContainer = styled.form` margin: 0 auto; background: #ffffff; height: 5rem; - width: 26rem; border-radius: 0rem 0rem 0.5rem 0.5rem; display: flex; flex-direction: "row"; `; const Input = styled.input` - width: 18.8rem; + width: 18rem; margin: 0.5rem; height: 3.5rem; border: none; `; const SendButton = styled.button` - width: 5rem; + width: 4rem; height: 3.7rem; margin-top: 0.5rem; background-color: #f9eb54; - border-width: 0.01rem; + border: none; `; export { SendMessage }; diff --git a/src/components/UserProfile.tsx b/src/components/UserProfile.tsx index 80dd4e9..01a2a69 100644 --- a/src/components/UserProfile.tsx +++ b/src/components/UserProfile.tsx @@ -1,15 +1,20 @@ -import { useState } from "react"; import { useRecoilState } from "recoil"; import styled from "styled-components"; import { currentId } from "../store/recoil/recoil"; +interface imageStyle { + brightness?: string; + width?: number; + height?: number; +} + function UserProfile({ userImage, userName, userId, }: { userImage: any; - userName: string; + userName?: string; userId: number; }) { const [sender, setSender] = useRecoilState(currentId); @@ -23,7 +28,7 @@ function UserProfile({ {userId === sender ? ( <>
) : ( - + )} {userName} @@ -55,9 +60,9 @@ const UserContainer = styled.div` margin-left: 1rem; `; -const UserProfileImage = styled.img<{ brightness?: string }>` - width: 3rem; - height: 3rem; +const UserProfileImage = styled.img` + width: ${(props) => props.width || 3}rem; + height: ${(props) => props.height || 3}rem; border-radius: 1rem; border-width: 0.3rem; filter: ${(props) => props.brightness || "brightness(100%)"}; @@ -77,4 +82,4 @@ font-size: "0.7rem", margin: "0.5rem", `; -export default UserProfile; +export { UserProfile, UserProfileImage }; diff --git a/src/interface/chat.tsx b/src/interface/chat.tsx index 58a1db9..be7d6dc 100644 --- a/src/interface/chat.tsx +++ b/src/interface/chat.tsx @@ -3,6 +3,7 @@ interface chat { senderId: number; receiverId: number; text: string; + time: string; } export default chat; diff --git a/src/store/Message.json b/src/store/Message.json index 1662d42..66a8678 100644 --- a/src/store/Message.json +++ b/src/store/Message.json @@ -3,18 +3,21 @@ "chatId": 1, "senderId": 2, "receiverId": 1, - "text": "머해" + "text": "머해", + "time": "11:24" }, { "chatId": 2, "senderId": 2, "receiverId": 1, - "text": "놀쟈" + "text": "놀쟈", + "time": "11:24" }, { "chatId": 3, "senderId": 1, "receiverId": 2, - "text": "구래" + "text": "구래", + "time": "11:28" } ] diff --git a/src/store/UserData.json b/src/store/UserData.json index 56cfe95..7d04e74 100644 --- a/src/store/UserData.json +++ b/src/store/UserData.json @@ -3,12 +3,12 @@ { "userId": 1, "userName": "콩쥐", - "profileImage": "user1.png" + "profileImage": "user1" }, { "userId": 2, "userName": "팥쥐", - "profileImage": "user2.jpg" + "profileImage": "user2" } ] } From cf4d048e79f072ac0550eb4d91df2ee27e5a8dee Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Tue, 1 Nov 2022 00:15:10 +0900 Subject: [PATCH 09/23] [feat]: apply Routes --- package-lock.json | 61 ++++++++++++++++++++++++++++++++++++ package.json | 1 + public/img/chat.png | Bin 0 -> 8261 bytes public/img/full_chat.png | Bin 0 -> 5296 bytes public/img/full_profile.png | Bin 0 -> 8383 bytes public/img/full_setting.png | Bin 0 -> 4422 bytes public/img/profile.png | Bin 0 -> 11298 bytes public/img/setting.png | Bin 0 -> 5236 bytes src/App.tsx | 12 +++++-- src/components/Navi.tsx | 61 ++++++++++++++++++++++++++++++++++++ src/index.tsx | 9 ++++-- src/pages/ChatList.tsx | 28 +++++++++++++++++ src/pages/FriendsList.tsx | 28 +++++++++++++++++ src/pages/Setting.tsx | 28 +++++++++++++++++ 14 files changed, 223 insertions(+), 5 deletions(-) create mode 100644 public/img/chat.png create mode 100644 public/img/full_chat.png create mode 100644 public/img/full_profile.png create mode 100644 public/img/full_setting.png create mode 100644 public/img/profile.png create mode 100644 public/img/setting.png create mode 100644 src/components/Navi.tsx create mode 100644 src/pages/ChatList.tsx create mode 100644 src/pages/FriendsList.tsx create mode 100644 src/pages/Setting.tsx diff --git a/package-lock.json b/package-lock.json index 0fc3ceb..0f574d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@types/react-dom": "^18.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router-dom": "^6.4.2", "react-scripts": "5.0.1", "recoil": "^0.7.5", "styled-components": "^5.3.6", @@ -3111,6 +3112,14 @@ } } }, + "node_modules/@remix-run/router": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", + "integrity": "sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==", + "engines": { + "node": ">=14" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -13884,6 +13893,36 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.2.tgz", + "integrity": "sha512-Rb0BAX9KHhVzT1OKhMvCDMw776aTYM0DtkxqUBP8dNBom3mPXlfNs76JNGK8wKJ1IZEY1+WGj+cvZxHVk/GiKw==", + "dependencies": { + "@remix-run/router": "1.0.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.2.tgz", + "integrity": "sha512-yM1kjoTkpfjgczPrcyWrp+OuQMyB1WleICiiGfstnQYo/S8hPEEnVjr/RdmlH6yKK4Tnj1UGXFSa7uwAtmDoLQ==", + "dependencies": { + "@remix-run/router": "1.0.2", + "react-router": "6.4.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -18818,6 +18857,11 @@ "source-map": "^0.7.3" } }, + "@remix-run/router": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", + "integrity": "sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==" + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -26484,6 +26528,23 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" }, + "react-router": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.2.tgz", + "integrity": "sha512-Rb0BAX9KHhVzT1OKhMvCDMw776aTYM0DtkxqUBP8dNBom3mPXlfNs76JNGK8wKJ1IZEY1+WGj+cvZxHVk/GiKw==", + "requires": { + "@remix-run/router": "1.0.2" + } + }, + "react-router-dom": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.2.tgz", + "integrity": "sha512-yM1kjoTkpfjgczPrcyWrp+OuQMyB1WleICiiGfstnQYo/S8hPEEnVjr/RdmlH6yKK4Tnj1UGXFSa7uwAtmDoLQ==", + "requires": { + "@remix-run/router": "1.0.2", + "react-router": "6.4.2" + } + }, "react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", diff --git a/package.json b/package.json index e8175a6..e85a73b 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@types/react-dom": "^18.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router-dom": "^6.4.2", "react-scripts": "5.0.1", "recoil": "^0.7.5", "styled-components": "^5.3.6", diff --git a/public/img/chat.png b/public/img/chat.png new file mode 100644 index 0000000000000000000000000000000000000000..3aaff2a43d4eeb071f745aefeee3dab8e4584f14 GIT binary patch literal 8261 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 TV^8IOE^jSO?GSZv&xHR6kOS^^ literal 0 HcmV?d00001 diff --git a/public/img/full_chat.png b/public/img/full_chat.png new file mode 100644 index 0000000000000000000000000000000000000000..de459e0838eb1327db14c8108b799321b624d4fe GIT binary patch literal 5296 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≺0*taMg~Bt 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 literal 0 HcmV?d00001 diff --git a/public/img/full_setting.png b/public/img/full_setting.png new file mode 100644 index 0000000000000000000000000000000000000000..c6120003b2eaa55c2176fd37986a230b8fcc0927 GIT binary patch literal 4422 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 GXa587By0u% literal 0 HcmV?d00001 diff --git a/public/img/profile.png b/public/img/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..4b8a932ae4ed5a4919322794e67e7176db1d2a5a GIT binary patch literal 11298 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

&dXJO_ledxcrfqzurO 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 literal 0 HcmV?d00001 diff --git a/src/App.tsx b/src/App.tsx index c76811d..18a8f76 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,10 +1,17 @@ import styled from "styled-components"; -import ChatRoom from "./pages/ChatRoom"; +import { Routes, Route } from "react-router-dom"; +import FriendsList from "./pages/FriendsList"; +import ChatList from "./pages/ChatList"; +import Setting from "./pages/Setting"; function App() { return ( - + + } /> + } /> + } /> + ); } @@ -15,6 +22,7 @@ const Container = styled.div` margin-top: 2rem; border-radius: 0.5rem; width: 24rem; + height: 43rem; `; export default App; diff --git a/src/components/Navi.tsx b/src/components/Navi.tsx new file mode 100644 index 0000000..d96c04b --- /dev/null +++ b/src/components/Navi.tsx @@ -0,0 +1,61 @@ +import { Link, useLocation } from "react-router-dom"; +import styled from "styled-components"; + +const Navigation = () => { + const { pathname } = useLocation(); + + return ( +

+ ); +}; + +const Nav = styled.div` + width: 5rem; + height: 42.9rem; + border-radius: 0.5rem 0 0 0.5rem; + background-color: rgb(230, 230, 230); + //border-right: 1px solid rgb(230, 230, 230); + border: 0.05rem solid #fff; +`; + +const IconWrap = styled.div` + width: 1.7rem; + margin: auto; + height: auto; + display: flex; + flex-direction: column; + padding: 2rem 0; +`; + +const Icon = styled.img` + width: 1.7rem; + height: 1.7rem; + margin: auto; + padding: 1rem 0; +`; + +export default Navigation; diff --git a/src/index.tsx b/src/index.tsx index 6c80f11..2966356 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,5 +1,6 @@ import React from "react"; import ReactDOM from "react-dom/client"; +import { BrowserRouter } from "react-router-dom"; import { RecoilRoot } from "recoil"; import App from "./App"; @@ -8,8 +9,10 @@ const root = ReactDOM.createRoot( ); root.render( - - - + + + + + ); diff --git a/src/pages/ChatList.tsx b/src/pages/ChatList.tsx new file mode 100644 index 0000000..6642f8a --- /dev/null +++ b/src/pages/ChatList.tsx @@ -0,0 +1,28 @@ +import styled from "styled-components"; +import Navigation from "../components/Navi"; + +const ChatList = () => { + return ( + + + +
ChatList
+
+
+ ); +}; + +const Container = styled.div` + display: flex; +`; + +const ChatListWrap = styled.div` + box-sizing: border-box; + padding: 15px; +`; + +const Div = styled.div` + color: #000; +`; + +export default ChatList; diff --git a/src/pages/FriendsList.tsx b/src/pages/FriendsList.tsx new file mode 100644 index 0000000..11d85bf --- /dev/null +++ b/src/pages/FriendsList.tsx @@ -0,0 +1,28 @@ +import styled from "styled-components"; +import Navigation from "../components/Navi"; + +const FriendsList = () => { + return ( + + + +
FriendList
+
+
+ ); +}; + +const Container = styled.div` + display: flex; +`; + +const FriendListWrap = styled.div` + box-sizing: border-box; + padding: 15px; +`; + +const Div = styled.div` + color: #000; +`; + +export default FriendsList; diff --git a/src/pages/Setting.tsx b/src/pages/Setting.tsx new file mode 100644 index 0000000..63795fa --- /dev/null +++ b/src/pages/Setting.tsx @@ -0,0 +1,28 @@ +import styled from "styled-components"; +import Navigation from "../components/Navi"; + +const Setting = () => { + return ( + + + +
Setting
+
+
+ ); +}; + +const Container = styled.div` + display: flex; +`; + +const SettingWrap = styled.div` + box-sizing: border-box; + padding: 15px; +`; + +const Div = styled.div` + color: #000; +`; + +export default Setting; From 6c75d2022b202e7b8a43426ed86e18a3eb91eebc Mon Sep 17 00:00:00 2001 From: Chaeyeon An Date: Tue, 1 Nov 2022 19:52:00 +0900 Subject: [PATCH 10/23] [feat]: done FriendsList Layout --- src/components/ChattingRoom/ChatBody.tsx | 2 +- src/components/ChattingRoom/ChatBubble.tsx | 4 +- .../ChattingRoom/ChatRoomHeader.tsx | 2 +- src/components/ChattingRoom/SendMessage.tsx | 2 +- src/components/Navi.tsx | 6 +- src/components/user/FriendsProfile.tsx | 60 +++++++++++++++++++ src/components/{ => user}/UserProfile.tsx | 2 +- src/interface/chat.tsx | 9 ++- src/pages/FriendsList.tsx | 51 ++++++++++++++-- src/store/UserData.json | 18 +++++- 10 files changed, 140 insertions(+), 16 deletions(-) create mode 100644 src/components/user/FriendsProfile.tsx rename src/components/{ => user}/UserProfile.tsx (96%) diff --git a/src/components/ChattingRoom/ChatBody.tsx b/src/components/ChattingRoom/ChatBody.tsx index 50b62a3..ec41f0f 100644 --- a/src/components/ChattingRoom/ChatBody.tsx +++ b/src/components/ChattingRoom/ChatBody.tsx @@ -1,7 +1,7 @@ import { useRef, useEffect } from "react"; import { useRecoilState } from "recoil"; import styled from "styled-components"; -import chat from "../../interface/chat"; +import { chat } from "../../interface/chat"; import { chatList } from "../../store/recoil/recoil"; import ChatBubble from "./ChatBubble"; diff --git a/src/components/ChattingRoom/ChatBubble.tsx b/src/components/ChattingRoom/ChatBubble.tsx index a455306..170a3de 100644 --- a/src/components/ChattingRoom/ChatBubble.tsx +++ b/src/components/ChattingRoom/ChatBubble.tsx @@ -1,8 +1,8 @@ import { useRecoilState } from "recoil"; import styled from "styled-components"; -import chat from "../../interface/chat"; +import { chat } from "../../interface/chat"; import { currentId } from "../../store/recoil/recoil"; -import { UserProfileImage } from "../UserProfile"; +import { UserProfileImage } from "../user/UserProfile"; import UserData from "../../store/UserData.json"; interface bubbleStyle { diff --git a/src/components/ChattingRoom/ChatRoomHeader.tsx b/src/components/ChattingRoom/ChatRoomHeader.tsx index ccc7795..5fe8ba5 100644 --- a/src/components/ChattingRoom/ChatRoomHeader.tsx +++ b/src/components/ChattingRoom/ChatRoomHeader.tsx @@ -1,6 +1,6 @@ import styled from "styled-components"; import UserData from "../../store/UserData.json"; -import { UserProfile } from "../UserProfile"; +import { UserProfile } from "../user/UserProfile"; function ChatRoomHeader() { let userData = UserData.users; diff --git a/src/components/ChattingRoom/SendMessage.tsx b/src/components/ChattingRoom/SendMessage.tsx index 9d125e3..501e749 100644 --- a/src/components/ChattingRoom/SendMessage.tsx +++ b/src/components/ChattingRoom/SendMessage.tsx @@ -1,7 +1,7 @@ import { useRecoilState } from "recoil"; import styled from "styled-components"; import useInput from "../../hooks/useInput"; -import chat from "../../interface/chat"; +import { chat } from "../../interface/chat"; import { chatList, currentId } from "../../store/recoil/recoil"; function SendMessage() { diff --git a/src/components/Navi.tsx b/src/components/Navi.tsx index d96c04b..cc5e140 100644 --- a/src/components/Navi.tsx +++ b/src/components/Navi.tsx @@ -8,21 +8,21 @@ const Navigation = () => {