diff --git a/hydratable.config.json b/hydratable.config.json deleted file mode 100644 index 0a544b7..0000000 --- a/hydratable.config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "crawlingUrls": ["/", "/MonthView", "/invite", "/eventCalendar"], - "delay": 1500, - "pageCount": 1, - "retryCount": 1 -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ceb6ea6..73bcf61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,6 @@ "react-calendar": "^5.0.0", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.3.1", - "react-helmet-async": "^2.0.5", "react-router-dom": "^6.26.2", "react-scripts": "5.0.1", "react-swipeable": "^7.0.1", @@ -51,7 +50,6 @@ "autoprefixer": "^10.4.20", "firebase-tools": "^13.29.1", "postcss": "^8.5.1", - "react-hydratable": "^1.5.0", "tailwindcss": "^3.4.17", "ua-parser-js": "^2.0.0" } @@ -6040,17 +6038,6 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "license": "MIT" }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", @@ -9582,62 +9569,6 @@ "which": "bin/which" } }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/cross-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/cross-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -10459,13 +10390,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/devtools-protocol": { - "version": "0.0.1019158", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz", - "integrity": "sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -12231,43 +12155,6 @@ "node": ">=0.6.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -12374,16 +12261,6 @@ "bser": "2.1.1" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/fecha": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", @@ -13207,13 +13084,6 @@ "node": ">= 0.6" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, "node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -14607,15 +14477,6 @@ "node": ">= 0.4" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -19118,13 +18979,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true, - "license": "MIT" - }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -20399,13 +20253,6 @@ "node": ">=0.12" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true, - "license": "MIT" - }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -22350,72 +22197,6 @@ "node": ">=8" } }, - "node_modules/puppeteer": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-15.5.0.tgz", - "integrity": "sha512-+vZPU8iBSdCx1Kn5hHas80fyo0TiVyMeqLGv/1dygX2HKhAZjO9YThadbRTCoTYq0yWw+w/CysldPsEekDtjDQ==", - "deprecated": "< 22.8.2 is no longer supported", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1019158", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.8.0" - }, - "engines": { - "node": ">=14.1.0" - } - }, - "node_modules/puppeteer/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/puppeteer/node_modules/ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -22888,39 +22669,6 @@ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", "license": "MIT" }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, - "node_modules/react-helmet-async": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.5.tgz", - "integrity": "sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==", - "license": "Apache-2.0", - "dependencies": { - "invariant": "^2.2.4", - "react-fast-compare": "^3.2.2", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-hydratable": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-hydratable/-/react-hydratable-1.5.0.tgz", - "integrity": "sha512-AeXsDor8w6iSinuuod6qxUNG9yCAqjaV/dPniC1J7qBa3Yf/Q5gTF6g1niUqHUfpclNbbIKHEvAQsJOc7ysJNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "puppeteer": "^15.0.0" - }, - "bin": { - "react-hydratable": "index.js" - } - }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -24148,12 +23896,6 @@ "node": ">=8" } }, - "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==", - "license": "MIT" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -25419,43 +25161,6 @@ "node": ">=10" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "license": "MIT", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, - "license": "ISC" - }, - "node_modules/tar-fs/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tar-stream": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", @@ -26335,17 +26040,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, "node_modules/underscore": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", @@ -27971,27 +27665,6 @@ "node": ">=10" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yauzl/node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index 9ffa895..437b20e 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "react-calendar": "^5.0.0", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.3.1", - "react-helmet-async": "^2.0.5", "react-router-dom": "^6.26.2", "react-scripts": "5.0.1", "react-swipeable": "^7.0.1", @@ -43,11 +42,8 @@ }, "scripts": { "start": "craco start", - "build": " craco build", - "test": "craco test", - "postbuild": "react-hydratable", - "preview": "react-hydratable --preview" - + "build": " CI=false craco build", + "test": "craco test" }, "eslintConfig": { "extends": [ @@ -72,7 +68,6 @@ "autoprefixer": "^10.4.20", "firebase-tools": "^13.29.1", "postcss": "^8.5.1", - "react-hydratable": "^1.5.0", "tailwindcss": "^3.4.17", "ua-parser-js": "^2.0.0" } diff --git a/public/index.html b/public/index.html index dfeee0e..6f79f3b 100644 --- a/public/index.html +++ b/public/index.html @@ -10,11 +10,24 @@ content="Web site created using create-react-app" /> - + + + + + WWWM @@ -24,5 +37,15 @@
+ \ No newline at end of file diff --git a/src/App.js b/src/App.js index 20b5b1c..07c3273 100644 --- a/src/App.js +++ b/src/App.js @@ -7,8 +7,8 @@ import ParentMonth from './pages/ParentMonth'; import GetAppointmentRedirect from './pages/GetAppointmentRedirect'; import IndividualCalendar from './pages/individualCalendar'; import MyPage from './pages/MyPage'; +import AccountManagement from './pages/AccountManagement'; import LandingPage from "./components/LandingPage"; -import { Helmet } from 'react-helmet-async'; function App() { return ( @@ -22,6 +22,7 @@ function App() { } /> }/> } /> + } /> diff --git a/src/components/LandingPage.js b/src/components/LandingPage.js index 539b363..e8f01fb 100644 --- a/src/components/LandingPage.js +++ b/src/components/LandingPage.js @@ -6,7 +6,6 @@ import { useNavigate, useLocation } from 'react-router-dom'; import { colorVariants, colors } from '../styles/color.ts'; import { Button } from './Button.tsx'; import { motion } from "framer-motion"; -import { Helmet } from 'react-helmet-async'; //빠른 약속 시간 체크할 때, 언제 볼까? const Section1 = ({navigate }) => ( @@ -553,13 +552,6 @@ const LandingPage = () => { }, []); return (
- - {'언제볼까?'} - - diff --git a/src/components/TimePicker.js b/src/components/TimePicker.js index 0d25e87..ae05a5b 100644 --- a/src/components/TimePicker.js +++ b/src/components/TimePicker.js @@ -90,7 +90,7 @@ const TimePicker = ({ startTime, endTime, setStartTime, setEndTime, onCreateCale setEndHour24(nextH); const hh = String(nextH).padStart(2, '0'); setEndTime(`${hh}:00`); - //console.log("endtimeL ",endTime); + console.log("endtimeL ",endTime); } }; diff --git a/src/index.js b/src/index.js index c9acbb2..8d5cddf 100644 --- a/src/index.js +++ b/src/index.js @@ -3,15 +3,12 @@ import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; -import { HelmetProvider } from 'react-helmet-async'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( - - - - - + + + ); reportWebVitals(); diff --git a/src/pages/AccountManagement.css b/src/pages/AccountManagement.css new file mode 100644 index 0000000..92948ed --- /dev/null +++ b/src/pages/AccountManagement.css @@ -0,0 +1,113 @@ +.account-container { + width: 100%; + max-width: 768px; + height: 100vh; + margin: 0 auto; + background-color: white; + display: flex; + flex-direction: column; + } + + .account-header { + display: flex; + align-items: center; + padding: 20px; + } + + .back-button { + background: none; + border: none; + font-size: 24px; + cursor: pointer; + padding: 5px; + margin-right: 15px; + color: #000; + } + + .header-title { + font-size: 16px; + font-weight: 500; + border:none; + } + + .account-form { + padding: 24px 20px; + } + + .form-group { + margin-bottom: 24px; + display: flex; + + } + + .input-label { + font-size: 14px; + color: var(-grayscale-gray-600); + font-family: "Pretendard-Medium", Helvetica; + font-weight: 500; + margin-bottom: 8px; + /* display: inline-block; */ + padding: 4% 20px; + width: 150px; + line-height: 20px; + margin-right:20px; + } + + .input-field { + width: 100%; + border: none; + padding: 8px 0; + font-size: 15px; + outline: none; + color: var(-grayscale-gray-900); + font-family: "Pretendard-Medium", Helvetica; + font-weight: 600; + } + + .input-field::placeholder { + color: #CCCCCC; + } + + + .form-group { + margin-bottom: 24px; + background-color: #ffffff; + border: 1px solid; + border-color: #f1f1f1; + border-radius: 6px; + height: 48px; + width:312px; + } + .save-button { + width: 100% !important; + padding: 15px; + background-color: var(--grayscale-gray-100); + border: 1px solid; + border-color: var(--grayscale-gray-400); + font-family: "Pretendard-Medium", Helvetica; + border-radius: 8px; + color: var(--grayscale-gray-600); + font-size: 14px; + cursor: pointer; + margin-top: 32px; + transition: all 0.3s ease; + } + + .save-button:hover { + background-color: #EBEBEB; + } + .save-button:disabled { + cursor: default; + } + + .save-button.active { + background-color: #000; + color: white; + width:2000px; + padding: auto; + + } + + .save-button.active:hover { + opacity: 0.9; + } \ No newline at end of file diff --git a/src/pages/AccountManagement.js b/src/pages/AccountManagement.js new file mode 100644 index 0000000..fbf727c --- /dev/null +++ b/src/pages/AccountManagement.js @@ -0,0 +1,72 @@ +import React, { useState, useEffect } from 'react'; +import './AccountManagement.css'; + +const AccountManagement = () => { + const [formData, setFormData] = useState({ + name: '', + password: '' + }); + + // 버튼 활성화 상태 관리 + const [isButtonActive, setIsButtonActive] = useState(false); + + // 비밀번호 길이를 체크하여 버튼 활성화 상태 업데이트 + useEffect(() => { + setIsButtonActive(formData.password.length >= 10); + }, [formData.password]); + + const handleSubmit = (e) => { + e.preventDefault(); + if (isButtonActive) { + // 저장하기 로직 구현 + } + }; + + + return ( +
+
+ +

계정 관리

+
+ +
+
+ + setFormData({...formData, name: e.target.value})} + className="input-field" + placeholder="Username" + /> +
+ +
+ + setFormData({...formData, password: e.target.value})} + placeholder="********" + /> +
+ + +
+
+ ); +}; + +export default AccountManagement; \ No newline at end of file diff --git a/src/pages/ParentMonth.js b/src/pages/ParentMonth.js index 1327ddc..14253eb 100644 --- a/src/pages/ParentMonth.js +++ b/src/pages/ParentMonth.js @@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react'; import MonthView from './MonthView'; import TimePicker from '../components/TimePicker'; import { useNavigate } from 'react-router-dom'; -import { Helmet } from 'react-helmet-async'; const ParentMonth = () => { // NODE_ENV에 기반하여 BASE_URL에 환경변수 할당 @@ -24,7 +23,7 @@ const ParentMonth = () => { // handleCreateCalendar 함수가 필요한 곳에서 호출될 수 있도록 콜백 설정 const handleCalendarCreation = async (data) => { if (!data) { - //console.error('jsonData가 아직 준비되지 않았습니다.'); + console.error('jsonData가 아직 준비되지 않았습니다.'); return; } @@ -44,7 +43,7 @@ const ParentMonth = () => { } const calendarData = await calendarResponse.json(); - //console.log("나는 캘린더data: ",calendarData); + console.log("나는 캘린더data: ",calendarData); const appointmentId = calendarData.object.id; // console.log("왜안되는걸까?",appointmentId); //정상작동 @@ -61,13 +60,6 @@ const ParentMonth = () => { return ( <> - - {'언제볼까?'} - - { setJsonData(data); diff --git a/src/pages/eventCalendar.js b/src/pages/eventCalendar.js index 67308c0..c366900 100644 --- a/src/pages/eventCalendar.js +++ b/src/pages/eventCalendar.js @@ -10,7 +10,6 @@ import { cn } from '../utils/cn.js'; import { Button } from '../components/Button.tsx'; // import { CopyToClipboard } from "react-copy-to-clipboard"; import { AnimatePresence, motion } from 'framer-motion'; -import { Helmet } from 'react-helmet-async'; const EventCalendar = () => { @@ -314,206 +313,184 @@ const truncateName = (name) => { }; return ( - <> - - {eventName ? `언제볼까? - ${eventName} ` : '언제볼까?'} - +
+ {/*

{eventName}

*/} +
+ 홈으로 돌아가기 navigate('/MonthView')} + /> +
+ {eventName} +
+
+ 링크 공유하기 버튼handleShare(shareString)} + onClick={handleShare} /> - -
-
+
+
+ {dates.map(({ date, key }) => (
setSelectedDate(key)} > -
- + ))} +
+
+ {times.map((time, timeIndex) => ( +
+
+ {moment(time, 'HH:mm').format('HH시')} +
+
+ {[...Array(6)].map((_, buttonIndex) => { + const userCount = selectedTimes[selectedDate]?.[timeIndex]?.[buttonIndex]?.userCount || 0; + + // 색상 클래스 결정 + let colorClass = ''; + if (userCount/TotalUsers > 0 && userCount/TotalUsers <= 0.3) { + colorClass = `${colorVariants({ bg: 'blue-50' })} border-[var(--blue-100)]`; + } else if (userCount/TotalUsers > 0.3 && userCount/TotalUsers <= 0.6) { + colorClass = `${colorVariants({ bg: 'blue-100' })} border-[var(--blue-200)]`; + } else if (userCount/TotalUsers > 0.6 && userCount/TotalUsers < 0.99) { + colorClass = `${colorVariants({ bg: 'blue-200' })} border-[var(--blue-300)]`; + } else if (userCount/TotalUsers === 1) { + colorClass = `${colorVariants({ bg: 'magen-50' })} border-[var(--magen-300)]`; + } + + return ( +
+
+ ))} +
+
+
+
+
+
+
+ 홈으로 돌아가기 navigate('/MonthView')} + alt="참여인원" /> -
- {eventName} -
+ 참여인원
- 링크 공유하기 버튼 +
{TotalUsers}명
- - -
-
- {times.map((time, timeIndex) => ( -
+
+ {Object.values(userList).map((user) => { + return (
- {moment(time, 'HH:mm').format('HH시')} -
-
- {[...Array(6)].map((_, buttonIndex) => { - const userCount = - selectedTimes[selectedDate]?.[timeIndex]?.[buttonIndex]?.userCount || 0; - let colorClass = ''; - if (userCount / TotalUsers > 0 && userCount / TotalUsers <= 0.3) { - colorClass = `${colorVariants({ bg: 'blue-50' })} border-[var(--blue-100)]`; - } else if (userCount / TotalUsers > 0.3 && userCount / TotalUsers <= 0.6) { - colorClass = `${colorVariants({ bg: 'blue-100' })} border-[var(--blue-200)]`; - } else if (userCount / TotalUsers > 0.6 && userCount / TotalUsers < 0.99) { - colorClass = `${colorVariants({ bg: 'blue-200' })} border-[var(--blue-300)]`; - } else if (userCount / TotalUsers === 1) { - colorClass = `${colorVariants({ bg: 'magen-50' })} border-[var(--magen-300)]`; - } - return ( -
-
- ))} + ); + })}
-
-
-
-
-
-
-
- 참여인원 - 참여인원 -
-
- {TotalUsers}명 -
-
-
- {Object.values(userList).map((user) => { - return ( -
- {truncateName(user.name)} -
- ); - })} -
-
-
{isOpen && ( { exit={{ y: '100%' }} transition={{ duration: 0.3, ease: 'easeOut' }} > - 공유창 손잡이 - - @@ -556,25 +530,25 @@ const truncateName = (name) => { {showToast && ( - -
+
+ ); }; export default EventCalendar; \ No newline at end of file diff --git a/src/pages/individualCalendar.js b/src/pages/individualCalendar.js index 76fcced..25511ea 100644 --- a/src/pages/individualCalendar.js +++ b/src/pages/individualCalendar.js @@ -11,7 +11,6 @@ import { typographyVariants } from '../styles/typography.ts'; import { colorVariants, colors } from '../styles/color.ts'; import { cn } from '../utils/cn'; import { Button } from '../components/Button.tsx'; -import { Helmet } from 'react-helmet-async'; // NODE_ENV에 기반하여 BASE_URL에 환경변수 할당 const BASE_URL = process.env.NODE_ENV === "production" @@ -741,67 +740,83 @@ const updateTimeSlot = async (timeIndex, buttonIndex, newValue, selectedTimes, s }; -return ( - <> - - {eventName ? `언제볼까? - ${eventName} ` : '언제볼까?'} - - -
-
-
- 재로그인하러 돌아가기 navigate(-1)} - /> - {/* h1 태그를 사용해 주요 제목임을 명시 */} -

- {eventName} -

-
-
- -
+ ` : + `` + } + tracking-[-0.35px] + p-[0.9rem] + w-[7.4rem] + text-center + flex-shrink-0 + flex-grow-0 + basis-[25%] + `} + onClick={() => setSelectedDate(key)} + > + {moment(date, 'YYYY-MM-DD').format('M/D(ddd)')} +
+ ))} +
+
))} - -
+
+
+ + ); }; export default IndividualCalendar; diff --git a/src/pages/invite.js b/src/pages/invite.js index 41926b3..0e29d5d 100644 --- a/src/pages/invite.js +++ b/src/pages/invite.js @@ -5,7 +5,6 @@ import { typographyVariants } from '../styles/typography.ts'; import { colorVariants, colors } from '../styles/color.ts'; import { cn } from '../utils/cn'; import { Button } from '../components/Button.tsx'; -import { Helmet } from 'react-helmet-async'; // import { tryParse } from 'firebase-tools/lib/utils'; @@ -176,167 +175,153 @@ const Invite = () => { } ); - return ( - <> - - {eventname ? `언제볼까? - ${eventname} ` : '언제볼까?'} - - -
-
-

{eventname}

-
-
-
+
+ {eventname} +
+
+ +
+
- {responseMessage && ( - - )} -
- - ); + : ` + placeholder-[var(--gray-300,#E0E0E0)] + bg-[var(--white)] + ` + } + ${typographyVariants({ variant: 'b2-md' })} + flex + w-[24.8rem] + h-[4rem] + px-[1.2rem] + py-[1.1rem] + items-center + gap-[1rem] + flex-shrink-0 + rounded-[0.6rem] + border-[0.1rem] + border-[var(--gray-300,#E0E0E0)] + ${error ? '!outline-[0.1rem] !outline-[#ff0000] !outline-none' : ''} + `} + aria-label="참여자 비밀번호 작성란" + /> + +