From 71a54a684a3fed2b22c813ba3e22e51f535c3f3a Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Fri, 24 Mar 2023 17:18:26 +0200 Subject: [PATCH 01/26] changes --- code/eslintrc.json | 132 ++++++++++++++++++++++++ code/package-lock.json | 153 +++++++++++++++++++++++----- code/package.json | 6 ++ code/public/index.html | 5 + code/src/App.js | 9 +- code/src/components/Parent.js | 122 ++++++++++++++++++++++ code/src/components/SubmitForm.css | 104 +++++++++++++++++++ code/src/components/SubmitForm.js | 46 +++++++++ code/src/components/ThoughtCard.css | 81 +++++++++++++++ code/src/components/ThoughtCard.js | 43 ++++++++ code/src/index.css | 37 ++++++- code/src/index.js | 2 +- 12 files changed, 703 insertions(+), 37 deletions(-) create mode 100644 code/eslintrc.json create mode 100644 code/src/components/Parent.js create mode 100644 code/src/components/SubmitForm.css create mode 100644 code/src/components/SubmitForm.js create mode 100644 code/src/components/ThoughtCard.css create mode 100644 code/src/components/ThoughtCard.js diff --git a/code/eslintrc.json b/code/eslintrc.json new file mode 100644 index 000000000..5a2ae8262 --- /dev/null +++ b/code/eslintrc.json @@ -0,0 +1,132 @@ +{ + "extends": [ + "airbnb" + ], + "globals": { + "document": true, + "window": true, + "process": true + }, + "env": { + "node": true, + "browser": true + }, + "parserOptions": { + "parser": "@babel/eslint-parser", + "requireConfigFile": false, + "sourceType": "module", + "ecmaVersion": 2017, + "ecmaFeatures": { + "jsx": true, + "experimentalObjectRestSpread": true, + "modules": true + } + }, + "plugins": [ + "react-hooks" + ], + "rules": { + "react/function-component-definition": [ + 2, + { + "namedComponents": "arrow-function", + "unnamedComponents": "arrow-function" + } + ], + "arrow-body-style": "off", + "linebreak-style": 0, + "class-methods-use-this": "off", + "brace-style": [ + "error", + "1tbs", + { + "allowSingleLine": true + } + ], + "comma-dangle": [ + "error", + "never" + ], + "consistent-return": "off", + "curly": "error", + "eol-last": "off", + "import/extensions": "off", + "import/no-extraneous-dependencies": "off", + "import/no-unresolved": "off", + "import/prefer-default-export": "off", + "indent": [ + "error", + 2, + { + "SwitchCase": 1 + } + ], + "jsx-a11y/anchor-is-valid": "off", + "jsx-a11y/label-has-for": "off", + "jsx-a11y/href-no-hash": "off", + "no-alert": "off", + "no-console": "off", + "no-debugger": "off", + "no-else-return": "off", + "no-irregular-whitespace": "error", + "no-multiple-empty-lines": [ + "error", + { + "max": 1 + } + ], + "no-param-reassign": "off", + "no-restricted-syntax": "off", + "object-curly-newline": [ + "error", + { + "ObjectExpression": { + "consistent": true + }, + "ObjectPattern": { + "multiline": true + } + } + ], + "prefer-template": "error", + "react/destructuring-assignment": "off", + "react/forbid-prop-types": "off", + "react/jsx-closing-bracket-location": [ + "error", + { + "selfClosing": "after-props", + "nonEmpty": "after-props" + } + ], + "react/jsx-curly-spacing": [ + "error", + { + "when": "never", + "children": true + } + ], + "react/jsx-filename-extension": "off", + "react/jsx-no-bind": "error", + "react/jsx-uses-react": "warn", + "react/jsx-wrap-multilines": "off", + "react/jsx-one-expression-per-line": "off", + "react/no-danger": "off", + "react/no-did-mount-set-state": "error", + "react/no-did-update-set-state": "error", + "react/no-direct-mutation-state": "error", + "react/no-multi-comp": [ + "error", + { + "ignoreStateless": true + } + ], + "react/no-string-refs": "error", + "react/prop-types": "off", + "react/require-extension": "off", + "react/sort-comp": "off", + "react/jsx-indent": "off", + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "warn", + "semi": "off" + } + } \ No newline at end of file diff --git a/code/package-lock.json b/code/package-lock.json index f7e97e1e9..a1f66702b 100644 --- a/code/package-lock.json +++ b/code/package-lock.json @@ -8,7 +8,13 @@ "name": "technigo-react-starter", "version": "1.0.0", "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.3.0", + "@fortawesome/free-regular-svg-icons": "^6.3.0", + "@fortawesome/free-solid-svg-icons": "^6.3.0", + "@fortawesome/react-fontawesome": "^0.2.0", "babel-eslint": "^10.1.0", + "babel-plugin-macros": "^3.1.0", + "date-fns": "^2.29.3", "eslint": "^8.21.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", @@ -2216,6 +2222,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.3.0.tgz", + "integrity": "sha512-4BC1NMoacEBzSXRwKjZ/X/gmnbp/HU5Qqat7E8xqorUtBFZS+bwfGH5/wqOC2K6GV0rgEobp3OjGRMa5fK9pFg==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.3.0.tgz", + "integrity": "sha512-uz9YifyKlixV6AcKlOX8WNdtF7l6nakGyLYxYaCa823bEBqyj/U2ssqtctO38itNEwXb8/lMzjdoJ+aaJuOdrw==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.3.0.tgz", + "integrity": "sha512-cZnwiVHZ51SVzWHOaNCIA+u9wevZjCuAGSvSYpNlm6A4H4Vhwh8481Bf/5rwheIC3fFKlgXxLKaw8Xeroz8Ntg==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.3.0.tgz", + "integrity": "sha512-x5tMwzF2lTH8pyv8yeZRodItP2IVlzzmBuD1M7BjawWgg9XAvktqJJ91Qjgoaf8qJpHQ8FEU9VxRfOkLhh86QA==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", + "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react": ">=16.3" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", @@ -3706,8 +3769,7 @@ "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "node_modules/@types/prettier": { "version": "2.6.4", @@ -4890,7 +4952,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -5730,7 +5791,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -6205,6 +6265,18 @@ "node": ">=10" } }, + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6652,7 +6724,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -9036,8 +9107,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -11656,8 +11726,7 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema": { "version": "0.4.0", @@ -11793,8 +11862,7 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/loader-runner": { "version": "4.3.0", @@ -12591,7 +12659,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -17498,7 +17565,6 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, "engines": { "node": ">= 6" } @@ -19004,6 +19070,43 @@ } } }, + "@fortawesome/fontawesome-common-types": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.3.0.tgz", + "integrity": "sha512-4BC1NMoacEBzSXRwKjZ/X/gmnbp/HU5Qqat7E8xqorUtBFZS+bwfGH5/wqOC2K6GV0rgEobp3OjGRMa5fK9pFg==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.3.0.tgz", + "integrity": "sha512-uz9YifyKlixV6AcKlOX8WNdtF7l6nakGyLYxYaCa823bEBqyj/U2ssqtctO38itNEwXb8/lMzjdoJ+aaJuOdrw==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.3.0" + } + }, + "@fortawesome/free-regular-svg-icons": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.3.0.tgz", + "integrity": "sha512-cZnwiVHZ51SVzWHOaNCIA+u9wevZjCuAGSvSYpNlm6A4H4Vhwh8481Bf/5rwheIC3fFKlgXxLKaw8Xeroz8Ntg==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.3.0" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.3.0.tgz", + "integrity": "sha512-x5tMwzF2lTH8pyv8yeZRodItP2IVlzzmBuD1M7BjawWgg9XAvktqJJ91Qjgoaf8qJpHQ8FEU9VxRfOkLhh86QA==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.3.0" + } + }, + "@fortawesome/react-fontawesome": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", + "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", + "requires": { + "prop-types": "^15.8.1" + } + }, "@humanwhocodes/config-array": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", @@ -20123,8 +20226,7 @@ "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@types/prettier": { "version": "2.6.4", @@ -21008,7 +21110,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, "requires": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -21669,7 +21770,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -21996,6 +22096,11 @@ "whatwg-url": "^8.0.0" } }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -22337,7 +22442,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -24082,8 +24186,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.4", @@ -26014,8 +26117,7 @@ "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json-schema": { "version": "0.4.0", @@ -26119,8 +26221,7 @@ "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "loader-runner": { "version": "4.3.0", @@ -26724,7 +26825,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -30266,8 +30366,7 @@ "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, "yargs": { "version": "16.2.0", diff --git a/code/package.json b/code/package.json index 68869f589..6913800e0 100644 --- a/code/package.json +++ b/code/package.json @@ -3,7 +3,13 @@ "version": "1.0.0", "private": true, "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.3.0", + "@fortawesome/free-regular-svg-icons": "^6.3.0", + "@fortawesome/free-solid-svg-icons": "^6.3.0", + "@fortawesome/react-fontawesome": "^0.2.0", "babel-eslint": "^10.1.0", + "babel-plugin-macros": "^3.1.0", + "date-fns": "^2.29.3", "eslint": "^8.21.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", diff --git a/code/public/index.html b/code/public/index.html index e6730aa66..d23eacd4a 100644 --- a/code/public/index.html +++ b/code/public/index.html @@ -3,6 +3,11 @@ + + + + + - Technigo React App + + + + Junior Science Lab®
- + diff --git a/code/public/og-image-survey.jpg b/code/public/og-image-survey.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ef716ea3664a17da5412054b147a56793ed8616 GIT binary patch literal 107892 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 literal 0 HcmV?d00001 From 692fb78af74073ba6a60b904da6a3f167c840604 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 11:11:54 +0300 Subject: [PATCH 16/26] some comments --- code/src/components/Parent.js | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/code/src/components/Parent.js b/code/src/components/Parent.js index 3f45cd6bd..0b6fd59b4 100644 --- a/code/src/components/Parent.js +++ b/code/src/components/Parent.js @@ -18,9 +18,9 @@ const Parent = () => { const [loading, setLoading] = useState(false); // Here we are calling the API and gets the JSON. - // The setLoading true shows "loading text" if the API call is delayed. + // The setLoading true shows "Loader" if the API call is delayed. // .catch is catching eventual errors and displays them in a consol.log - + // When everything is loaded we set loading (and loader) to false const fetchThoughts = () => { setLoading(true); fetch('https://happy-thoughts-ux7hkzgmwa-uc.a.run.app/thoughts') @@ -38,6 +38,7 @@ const Parent = () => { }, []); // <--- This is the dependency array. When you put something(variables) in here // it executs everytime the array change. But when its empty its only called when mounted. + // Handles heart button click, sends a POST request to increase the likes const onHeartButtonClick = (_id) => { const options = { method: 'POST', @@ -55,6 +56,8 @@ const Parent = () => { }); } + // Submits a new thought by sending a POST request to the API. + const submitThought = () => { fetch('https://happy-thoughts-ux7hkzgmwa-uc.a.run.app/thoughts', { method: 'POST', @@ -71,7 +74,12 @@ const Parent = () => { .catch((error) => console.log(error)) .finally(() => { setLoading(false); setSendThought('') }); } + // data represents the new thought object received after submitting the form. + // ...thoughtsList expands the elements of the current thoughtsList array. + // The new array is created by combining data and the expanded thoughtsList. + // The setThoughtsList function updates the state of thoughtsList with the new array. + // Handles form submission for the new thought. const onSubmit = (event) => { event.preventDefault(); submitThought(); @@ -102,5 +110,22 @@ const Parent = () => { ); } +// The code above checks if the loading state is true. // +// If it is, it renders a Loader component inside a div with a className of "loader-container". +// This is used to display a loading animation while the API call is in progress. // + +// The next div has a dynamic className. It starts with "content-container" and adds "visible"// +// only when loading is false. This is used to control the visibility of the content +// once the data has been fetched from the API.// + +// SubmitForm component is responsible for rendering a form to submit new thoughts. +// It receives the sendThought, setSendThought, and onSubmit props to manage the +// form data and handle the submission process. + +// ThoughtCard component displays the list of thoughts fetched from the API. +// It receives the onHeartButtonClick, thoughtsList, latestMessage, and loading props +// to handle the heart button click event, display the thoughts, show the latest message, +// and manage the loading state, respectively. + export default Parent; From 077f4a624d101a6fced05149867ef2c23485645f Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 11:51:21 +0300 Subject: [PATCH 17/26] some comments --- code/src/components/SubmitForm.js | 13 +++++++++---- code/src/components/ThoughtCard.js | 14 +++++++++++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/code/src/components/SubmitForm.js b/code/src/components/SubmitForm.js index e369fe840..74f0fa943 100644 --- a/code/src/components/SubmitForm.js +++ b/code/src/components/SubmitForm.js @@ -1,11 +1,15 @@ import React, { useState } from 'react'; import './SubmitForm.css'; +// Define the SubmitForm component with props for managing input and form submission const SubmitForm = ({ sendThought, setSendThought, onSubmit }) => { + // Declare state variables for input focus, input length, and the latest post const [isInputFocused, setIsInputFocused] = useState(false); const isTextTooShort = sendThought.length < 5; + // eslint-disable-next-line no-unused-vars const [latestPost, setLatestPost] = useState(null); - + /* eslint-enable no-unused-vars, no-underscore-dangle */ + // Set the input className based on input focus, input length, and latest post let inputClassName = 'input-area'; if (isInputFocused) { inputClassName += ' focus'; @@ -15,13 +19,13 @@ const SubmitForm = ({ sendThought, setSendThought, onSubmit }) => { } inputClassName += latestPost ? ' fade-in' : ''; + // Display a warning message if the input text is too short let warningText = null; if (isTextTooShort && !isInputFocused && sendThought.length > 0) { warningText = Too short; } - console.log(setLatestPost) - + // Render the SubmitForm component return (
@@ -38,11 +42,12 @@ const SubmitForm = ({ sendThought, setSendThought, onSubmit }) => { placeholder="My next project is on..." /> {warningText}
+ {/* Render the submit button and disable it if the input text is too short */} diff --git a/code/src/components/ThoughtCard.js b/code/src/components/ThoughtCard.js index f5deb68e3..c6eaf030f 100644 --- a/code/src/components/ThoughtCard.js +++ b/code/src/components/ThoughtCard.js @@ -1,4 +1,5 @@ /* eslint-disable no-underscore-dangle */ +// Import necessary libraries and components import React from 'react'; import { formatDistanceToNow } from 'date-fns'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; @@ -6,20 +7,29 @@ import { faHeart } from '@fortawesome/free-solid-svg-icons'; import './ThoughtCard.css'; import Loader from 'Loader'; +// Create a ThoughtCard component that takes three props: +// loading, thoughtsList, and onHeartButtonClick const ThoughtCard = ({ loading, thoughtsList, onHeartButtonClick }) => { + // If the "loading" prop is true, show the Loader component + // to indicate that we're waiting for data if (loading) { return } + // If the "loading" prop is false, show the list of thoughts return (
+ {/* Loop through the thoughtsList array and display each thought */} {thoughtsList.map((thought) => (
+ {/* Show the message of the thought */}

{thought.message}

+ {/* Create a button for liking the thought */} - + {/* Show the number of likes (hearts) for the thought */}

x {thought.hearts}

+ {/* Show how long ago the thought was posted */}

{formatDistanceToNow(new Date(thought.createdAt), Date.now(), { addSuffix: true @@ -41,4 +52,5 @@ const ThoughtCard = ({ loading, thoughtsList, onHeartButtonClick }) => { ); } +// Export the ThoughtCard component so it can be used in other parts of the app export default ThoughtCard; \ No newline at end of file From 49f6293650b67a342bdf2b8b6ea9981f65751c11 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 11:58:55 +0300 Subject: [PATCH 18/26] Update README.md --- README.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9ea4e26b3..3796a9086 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,34 @@ # Happy Thoughts -Replace this readme with your own information about your project. +In this week's project we practice React state skills by fetching and posting data to an API. -Start by briefly describing the assignment in a sentence or two. Keep it short and to the point. +**What we needed to do** + +✓ Page should follow the design as closely as possible +✓ List the most recent thoughts at the top and older thoughts at the bottom (sorted) +✓ Our thoughts should show the content of the message and how many likes they've received +✓ We should have a form to post new thoughts +✓ We should implement the heart button to send likes on a thought ## The problem -Describe how you approached to problem, and what tools and techniques you used to solve it. How did you plan? What technologies did you use? If you had more time, what would be next? +Biggest problems just adapting all the new stuff and things we have learned with JS and React... +This week I had time to do site for just mobile. ...Or the resto of it works as weell but it doesn't look too good + +This is how I sstructured the site: + + 1 Parent: This is the main component that handles fetching thoughts, sending thoughts, and liking thoughts. It renders the SubmitForm and ThoughtCard components. + 2 ThoughtCard: This component takes in a list of thoughts and displays them. It shows the message, hearts (likes), and the time it was posted. It also has a button to like a thought. + 3 SubmitForm: This component handles the form for submitting new thoughts. It has validation to check if the entered text is too short (less than 5 characters). + 4 Footer: Simple footer with text and animation + +CSS files for styling : + 1 ThoughtCard.css: This file contains the styles for the ThoughtCard component. + 2 SubmitForm.css: This file contains the styles for the SubmitForm component. + 3 index.css: This file contains the global styles for the application. ## View it live Every project should be deployed somewhere. Be sure to include the link to the deployed project so that the viewer can click around and see what it's all about. + +https://junior-science-lab.netlify.app From e6428e0a71adda023c98e89c4876f40869a119f5 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 11:59:35 +0300 Subject: [PATCH 19/26] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3796a9086..3dff0a693 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,6 @@ CSS files for styling : ## View it live -Every project should be deployed somewhere. Be sure to include the link to the deployed project so that the viewer can click around and see what it's all about. +My mobile site: https://junior-science-lab.netlify.app From 1a4a1c338d79036e1fcfa793057d74b78f54eb34 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 12:02:19 +0300 Subject: [PATCH 20/26] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 3dff0a693..efe9a659a 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,10 @@ In this week's project we practice React state skills by fetching and posting da ## The problem +Finland has just been selected (6th time in a row) as the happiest country, even if we genuinely love darkness, depression, heavy metal, booze, and knives. +Did you see Antonia’s amazing happy thoughts projects?!? –It was fantastic!! …But because she already shared all the happy thoughts we have in our dear country 😉 I chose to break some rules and do something slightly different: +A website for Junior Science Lab. It’s a website where tech kiddos can share with the rest of the group the project they want to work on next. + Biggest problems just adapting all the new stuff and things we have learned with JS and React... This week I had time to do site for just mobile. ...Or the resto of it works as weell but it doesn't look too good @@ -28,6 +32,7 @@ CSS files for styling : 3 index.css: This file contains the global styles for the application. ## View it live +![og-image-survey](https://user-images.githubusercontent.com/112956568/227894465-06ae9faa-c9fb-46ae-b722-7c417bf3b760.jpg) My mobile site: From dff285618ca82a690fd61cc124b199a30613f97d Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 12:03:35 +0300 Subject: [PATCH 21/26] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index efe9a659a..2c1b036b0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +https://user-images.githubusercontent.com/112956568/227894465-06ae9faa-c9fb-46ae-b722-7c417bf3b760.jpg + + + # Happy Thoughts In this week's project we practice React state skills by fetching and posting data to an API. @@ -32,7 +36,7 @@ CSS files for styling : 3 index.css: This file contains the global styles for the application. ## View it live -![og-image-survey](https://user-images.githubusercontent.com/112956568/227894465-06ae9faa-c9fb-46ae-b722-7c417bf3b760.jpg) + My mobile site: From b143187c969d0fec3fc2330bc494ba966a7e9cb5 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 12:03:58 +0300 Subject: [PATCH 22/26] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c1b036b0..baac049c6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -https://user-images.githubusercontent.com/112956568/227894465-06ae9faa-c9fb-46ae-b722-7c417bf3b760.jpg + +![og-image-survey](https://user-images.githubusercontent.com/112956568/227894906-f7cb0d3a-5038-4ca9-9645-7ce4e05e4eda.jpg) From 73c4dc951563b6ab11e676532fd5582ef2de1e48 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 27 Mar 2023 12:04:29 +0300 Subject: [PATCH 23/26] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index baac049c6..280c82017 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ -# Happy Thoughts +# Happy Thoughts aka Junior Science Lab In this week's project we practice React state skills by fetching and posting data to an API. From 801af91510906319212fb1b7dc9b6b84c013e394 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Sun, 21 May 2023 14:52:24 +0300 Subject: [PATCH 24/26] lot of changes --- code/.eslintrc.json | 13 +- code/eslintrc.json | 256 ++++++++++++++-------------- code/src/components/Parent.js | 24 ++- code/src/components/SubmitForm.css | 253 ++++++++++++++------------- code/src/components/SubmitForm.js | 53 +++++- code/src/components/ThoughtCard.css | 200 +++++++++++++--------- code/src/components/ThoughtCard.js | 107 ++++++++---- 7 files changed, 522 insertions(+), 384 deletions(-) diff --git a/code/.eslintrc.json b/code/.eslintrc.json index c9c0675c3..cf6749ee3 100644 --- a/code/.eslintrc.json +++ b/code/.eslintrc.json @@ -9,23 +9,20 @@ }, "env": { "node": true, - "browser": true + "browser": true, + "es6": true }, "parserOptions": { "parser": "@babel/eslint-parser", "requireConfigFile": false, "sourceType": "module", - "ecmaVersion": 2017, - "ecmaFeatures": { - "jsx": true, - "experimentalObjectRestSpread": true, - "modules": true - } + "ecmaVersion": 2018 }, "plugins": [ "react-hooks" ], "rules": { + "no-underscore-dangle": "off", "react/function-component-definition": [ 2, { @@ -128,4 +125,4 @@ "react-hooks/exhaustive-deps": "warn", "semi": "off" } -} +} \ No newline at end of file diff --git a/code/eslintrc.json b/code/eslintrc.json index 9424ee031..ac3150467 100644 --- a/code/eslintrc.json +++ b/code/eslintrc.json @@ -1,133 +1,133 @@ { - "extends": [ - "airbnb" + "extends": [ + "airbnb" + ], + "globals": { + "document": true, + "window": true, + "process": true + }, + "env": { + "node": true, + "browser": true + }, + "parserOptions": { + "parser": "@babel/eslint-parser", + "requireConfigFile": false, + "sourceType": "module", + "ecmaVersion": 2017, + "ecmaFeatures": { + "jsx": true, + "experimentalObjectRestSpread": true, + "modules": true + } + }, + "plugins": [ + "react-hooks" + ], + "rules": { + "react/function-component-definition": [ + 2, + { + "namedComponents": "arrow-function", + "unnamedComponents": "arrow-function" + } ], - "globals": { - "document": true, - "window": true, - "process": true - }, - "env": { - "node": true, - "browser": true - }, - "parserOptions": { - "parser": "@babel/eslint-parser", - "requireConfigFile": false, - "sourceType": "module", - "ecmaVersion": 2017, - "ecmaFeatures": { - "jsx": true, - "experimentalObjectRestSpread": true, - "modules": true + "arrow-body-style": "off", + "linebreak-style": 0, + "class-methods-use-this": "off", + "brace-style": [ + "error", + "1tbs", + { + "allowSingleLine": true } - }, - "plugins": [ - "react-hooks" ], - "rules": { - "react/function-component-definition": [ - 2, - { - "namedComponents": "arrow-function", - "unnamedComponents": "arrow-function" - } - ], - "arrow-body-style": "off", - "linebreak-style": 0, - "class-methods-use-this": "off", - "brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "comma-dangle": [ - "error", - "never" - ], - "consistent-return": "off", - "curly": "error", - "eol-last": "off", - "import/extensions": "off", - "import/no-extraneous-dependencies": "off", - "import/no-unresolved": "off", - "import/prefer-default-export": "off", - "indent": [ - "error", - 2, - { - "SwitchCase": 1 - } - ], - "jsx-a11y/anchor-is-valid": "off", - "jsx-a11y/label-has-for": "off", - "jsx-a11y/href-no-hash": "off", - "no-alert": "off", - "no-console": "off", - "no-debugger": "off", - "no-else-return": "off", - "no-irregular-whitespace": "error", - "no-multiple-empty-lines": [ - "error", - { - "max": 1 - } - ], - "no-param-reassign": "off", - "no-restricted-syntax": "off", - "object-curly-newline": [ - "error", - { - "ObjectExpression": { - "consistent": true - }, - "ObjectPattern": { - "multiline": true - } - } - ], - "prefer-template": "error", - "react/destructuring-assignment": "off", - "react/forbid-prop-types": "off", - "react/jsx-closing-bracket-location": [ - "error", - { - "selfClosing": "after-props", - "nonEmpty": "after-props" - } - ], - "react/jsx-curly-spacing": [ - "error", - { - "when": "never", - "children": true - } - ], - "react/jsx-filename-extension": "off", - "react/jsx-no-bind": "error", - "react/jsx-uses-react": "warn", - "react/jsx-wrap-multilines": "off", - "react/jsx-one-expression-per-line": "off", - "react/no-danger": "off", - "react/no-did-mount-set-state": "error", - "react/no-did-update-set-state": "error", - "react/no-direct-mutation-state": "error", - "react/no-multi-comp": [ - "error", - { - "ignoreStateless": true + "comma-dangle": [ + "error", + "never" + ], + "consistent-return": "off", + "curly": "error", + "eol-last": "off", + "import/extensions": "off", + "import/no-extraneous-dependencies": "off", + "import/no-unresolved": "off", + "import/prefer-default-export": "off", + "indent": [ + "error", + 2, + { + "SwitchCase": 1 + } + ], + "jsx-a11y/anchor-is-valid": "off", + "jsx-a11y/label-has-for": "off", + "jsx-a11y/href-no-hash": "off", + "no-alert": "off", + "no-console": "off", + "no-debugger": "off", + "no-underscore-dangle": "off", + "no-param-reassign": "off", + "no-else-return": "off", + "no-irregular-whitespace": "error", + "no-multiple-empty-lines": [ + "error", + { + "max": 1 + } + ], + "no-restricted-syntax": "off", + "object-curly-newline": [ + "error", + { + "ObjectExpression": { + "consistent": true + }, + "ObjectPattern": { + "multiline": true } - ], - "react/no-string-refs": "error", - "react/prop-types": "off", - "react/require-extension": "off", - "react/sort-comp": "off", - "react/jsx-indent": "off", - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": "warn", - "semi": "off" - } - - } \ No newline at end of file + } + ], + "prefer-template": "error", + "react/destructuring-assignment": "off", + "react/forbid-prop-types": "off", + "react/jsx-closing-bracket-location": [ + "error", + { + "selfClosing": "after-props", + "nonEmpty": "after-props" + } + ], + "react/jsx-curly-spacing": [ + "error", + { + "when": "never", + "children": true + } + ], + "react/jsx-filename-extension": "off", + "react/jsx-no-bind": "error", + "react/jsx-uses-react": "warn", + "react/jsx-wrap-multilines": "off", + "react/jsx-one-expression-per-line": "off", + "react/no-danger": "off", + "react/no-did-mount-set-state": "error", + "react/no-did-update-set-state": "error", + "react/no-direct-mutation-state": "error", + "react/no-multi-comp": [ + "error", + { + "ignoreStateless": true + } + ], + "react/no-string-refs": "error", + "react/prop-types": "off", + "react/require-extension": "off", + "react/sort-comp": "off", + "react/jsx-indent": "off", + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "warn", + "semi": "off" + } +} \ No newline at end of file diff --git a/code/src/components/Parent.js b/code/src/components/Parent.js index 0b6fd59b4..caecb762a 100644 --- a/code/src/components/Parent.js +++ b/code/src/components/Parent.js @@ -13,6 +13,7 @@ import Loader from 'Loader'; const Parent = () => { const [latestMessage, setLatestMessage] = useState(null) + const [sendName, setSendName] = useState(''); const [thoughtsList, setThoughtsList] = useState([]); const [sendThought, setSendThought] = useState(''); const [loading, setLoading] = useState(false); @@ -23,11 +24,11 @@ const Parent = () => { // When everything is loaded we set loading (and loader) to false const fetchThoughts = () => { setLoading(true); - fetch('https://happy-thoughts-ux7hkzgmwa-uc.a.run.app/thoughts') + fetch('https://science-lab.onrender.com/thoughts') .then((res) => res.json()) .then((data) => setThoughtsList(data)) .catch((error) => console.error(error)) - .finally(() => setLoading(false)); + .finally(() => { setLoading(false) }); } // This is an React hook called useEffect. It executes the fetchThoughts function. @@ -46,7 +47,7 @@ const Parent = () => { 'Content-type': 'application/json' } } - fetch(`https://happy-thoughts-ux7hkzgmwa-uc.a.run.app/thoughts/${_id}/like`, options) + fetch(`https://science-lab.onrender.com/thoughts/${_id}/like`, options) .then((response) => response.json()) .then(() => fetchThoughts()) .catch((error) => console.log(error)) @@ -59,9 +60,10 @@ const Parent = () => { // Submits a new thought by sending a POST request to the API. const submitThought = () => { - fetch('https://happy-thoughts-ux7hkzgmwa-uc.a.run.app/thoughts', { + fetch('https://science-lab.onrender.com/thoughts', { method: 'POST', body: JSON.stringify({ + name: `${sendName}`, message: `${sendThought}` }), headers: { 'Content-Type': 'application/json' } @@ -72,7 +74,11 @@ const Parent = () => { setLatestMessage(data._id) }) .catch((error) => console.log(error)) - .finally(() => { setLoading(false); setSendThought('') }); + .finally(() => { + setLoading(false); + setSendName(''); + setSendThought('') + }); } // data represents the new thought object received after submitting the form. // ...thoughtsList expands the elements of the current thoughtsList array. @@ -80,8 +86,8 @@ const Parent = () => { // The setThoughtsList function updates the state of thoughtsList with the new array. // Handles form submission for the new thought. - const onSubmit = (event) => { - event.preventDefault(); + const onSubmit = (e) => { + e.preventDefault(); submitThought(); } @@ -96,14 +102,18 @@ const Parent = () => { {loading &&

}
+
diff --git a/code/src/components/SubmitForm.css b/code/src/components/SubmitForm.css index 6e342fd9f..b302db499 100644 --- a/code/src/components/SubmitForm.css +++ b/code/src/components/SubmitForm.css @@ -1,119 +1,136 @@ .submit-box { - margin: 20px 0 0px 0 ; - padding-bottom: 0px; - } - - .submit-form { - display: flex; - align-items: center; - flex-direction: column; - padding: 14% 10% 20% 10%; - - } - - .submit-title { - - text-align: center; - font-weight: 700; - margin: -2px -48px 50px -40px; - font-size: 26px; - color: whitesmoke; - text-shadow: 0 0 120px rgb(1, 1, 1); - background: #0061ff; - } - - .input-width { - padding: 6% 0% 0% 0%; - border: none; - } - - .input-area { - display: flex; - align-items: center; - font-family: "Sora"; - font-weight: 800; - font-size: 14px; - letter-spacing: 1.4; - color: black; - padding: 22px 30px 2px 42px; - height: 100%; - width: 100%; - border: none; - outline: none; - border-radius: 15px; - background: #ffffff; - box-shadow: inset 4px 4px 8px #d1d1d1, - inset -8px -8px 16px #ffffff; - box-shadow: 12px 12px 14px rgba(255, 255, 255, 1) - -12px -12px 14px rgba(255, 254, 254, 1); - } - - ::placeholder { - color:rgb(146, 146, 146); - font-family: "Sora"; - font-size: 12px; - font-weight: 700; - padding-top: 2px; - letter-spacing: 0.26px; - text-transform: capitalize; - } - - .input-container { - position: relative; - display: inline-block; - } - - .error-message { - font-family: "Sora"; - text-transform: uppercase; - font-weight: 800; - font-size: 16px; - position: absolute; - top: 50%; - left: 32%; - transform: translateY(-50%); - color: rgb(255, 0, 0); - opacity: 0.5; - pointer-events: none; /* Disables interaction with the error message text */ - } - - .submit-button { - color: whitesmoke; - font-family: 'Sora'; - font-weight: 700; - font-size: 20px;; - text-align: center; - width: 60%; - border:none; - border-radius: 25px; - padding: 20px 10px 20px 10px; - margin: 60px 10px -60px 10px; - border-radius: 15px; - background: linear-gradient(145deg, #0068ff, #0057e6); - box-shadow: 7px 7px 14px #003fa6, - -7px -7px 14px #0083ff; - } - - .submit-button:hover { - opacity: 0.7; - } - - - .input-area.fade-in { - opacity: 0; - animation: fade-in 0.9s ease forwards; - } - - .input-area.fade-in { - opacity: 0; - animation: fade-in 0.9s ease forwards; - } - - @keyframes fade-in { - from { - opacity: 0; - } - to { - opacity: 1; - } - } \ No newline at end of file + margin: 20px 0 0px 0; + padding-bottom: 0px; +} + +.submit-form { + display: flex; + align-items: center; + flex-direction: column; + padding: 14% 10% 20% 10%; + +} + +.submit-title { + + text-align: center; + font-weight: 700; + margin: -2px -48px 50px -40px; + font-size: 26px; + color: whitesmoke; + text-shadow: 0 0 120px rgb(1, 1, 1); + background: #0061ff; +} + +.input-width { + padding: 6% 0% 0% 0%; + border: none; +} + +.input-area { + display: flex; + align-items: center; + font-family: "Sora"; + font-weight: 800; + font-size: 16px; + color: #616161; + padding: 22px 30px 2px 42px; + height: 100%; + width: 100%; + border: none; + outline: none; + border-radius: 30px; + background: #ffffff; + box-shadow: inset 4px 4px 8px #d1d1d1, + inset -8px -8px 16px #ffffff; + box-shadow: 12px 12px 14px rgba(255, 255, 255, 1) -12px -12px 14px rgba(255, 254, 254, 1); +} + + +::placeholder { + color: rgb(146, 146, 146); + font-family: "Sora"; + font-size: 14px; + font-weight: 700; + padding-top: 2px; + letter-spacing: 0.26px; + text-transform: uppercase; +} + +.input-container-name { + position: relative; + display: inline-block; + margin-bottom: 40px; +} + +.input-container-name:first-letter { + text-transform: capitalize; +} + +.input-container-message { + position: relative; + display: inline-block; + margin-bottom: -20px; +} + +.input-container-message:first-letter { + text-transform: capitalize; +} + +.error-message { + font-family: "Sora"; + text-transform: uppercase; + font-weight: 800; + font-size: 16px; + position: absolute; + top: 50%; + left: 32%; + transform: translateY(-50%); + color: rgb(255, 0, 0); + opacity: 0.5; + pointer-events: none; + /* Disables interaction with the error message text */ +} + +.submit-button { + color: whitesmoke; + font-family: 'Sora'; + font-weight: 700; + font-size: 20px; + ; + text-align: center; + width: 60%; + border: none; + border-radius: 25px; + padding: 20px 10px 20px 10px; + margin: 60px 10px -60px 10px; + border-radius: 15px; + background: linear-gradient(145deg, #0068ff, #0057e6); + box-shadow: 7px 7px 14px #003fa6, + -7px -7px 14px #0083ff; +} + +.submit-button:hover { + opacity: 0.7; +} + + +.input-area.fade-in { + opacity: 0; + animation: fade-in 0.9s ease forwards; +} + +.input-area.fade-in { + opacity: 0; + animation: fade-in 0.9s ease forwards; +} + +@keyframes fade-in { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} \ No newline at end of file diff --git a/code/src/components/SubmitForm.js b/code/src/components/SubmitForm.js index 74f0fa943..3f16ecfa6 100644 --- a/code/src/components/SubmitForm.js +++ b/code/src/components/SubmitForm.js @@ -2,13 +2,35 @@ import React, { useState } from 'react'; import './SubmitForm.css'; // Define the SubmitForm component with props for managing input and form submission -const SubmitForm = ({ sendThought, setSendThought, onSubmit }) => { +const SubmitForm = ({ + sendThought, + setSendThought, + sendName, + setSendName, + onSubmit +}) => { + const handleSendThought = (e) => { + setSendThought(e.target.value); + } + + const handleSendName = (e) => { + setSendName(e.target.value); + } + + const pressEnter = (e) => { + if (e.key === 'Enter') { + e.preventDefault(); + if (sendName.trim() !== '') { // if name-field is not empty, execute the handleFormSubmit-function + handleSendThought(e); + } + } + } + // Declare state variables for input focus, input length, and the latest post const [isInputFocused, setIsInputFocused] = useState(false); - const isTextTooShort = sendThought.length < 5; + const isTextTooShort = sendThought.length < 2; // eslint-disable-next-line no-unused-vars const [latestPost, setLatestPost] = useState(null); - /* eslint-enable no-unused-vars, no-underscore-dangle */ // Set the input className based on input focus, input length, and latest post let inputClassName = 'input-area'; if (isInputFocused) { @@ -17,6 +39,7 @@ const SubmitForm = ({ sendThought, setSendThought, onSubmit }) => { if (isTextTooShort && !isInputFocused && sendThought.length > 0) { inputClassName += ' error'; } + /* eslint-enable no-unused-vars, no-underscore-dangle */ inputClassName += latestPost ? ' fade-in' : ''; // Display a warning message if the input text is too short @@ -30,16 +53,30 @@ const SubmitForm = ({ sendThought, setSendThought, onSubmit }) => {

Junior Science Lab®

-
+
+