diff --git a/package-lock.json b/package-lock.json
index 7c96a3d..58094c5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,6 +23,7 @@
"node-sql-parser": "^4.7.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
+ "react-google-recaptcha": "^3.1.0",
"react-hotkeys-hook": "^4.4.1",
"react-router-dom": "^6.11.2",
"react-scripts": "5.0.1",
@@ -9350,6 +9351,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",
@@ -15181,6 +15195,18 @@
"node": ">=14"
}
},
+ "node_modules/react-async-script": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz",
+ "integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==",
+ "dependencies": {
+ "hoist-non-react-statics": "^3.3.0",
+ "prop-types": "^15.5.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.4.1"
+ }
+ },
"node_modules/react-dev-utils": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
@@ -15283,6 +15309,18 @@
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
"integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
},
+ "node_modules/react-google-recaptcha": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
+ "integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
+ "dependencies": {
+ "prop-types": "^15.5.0",
+ "react-async-script": "^1.2.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.4.1"
+ }
+ },
"node_modules/react-hotkeys-hook": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-4.4.1.tgz",
diff --git a/package.json b/package.json
index f5547a9..d6908cd 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"node-sql-parser": "^4.7.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
+ "react-google-recaptcha": "^3.1.0",
"react-hotkeys-hook": "^4.4.1",
"react-router-dom": "^6.11.2",
"react-scripts": "5.0.1",
diff --git a/src/App.js b/src/App.js
index 7f223a9..e3545bb 100644
--- a/src/App.js
+++ b/src/App.js
@@ -4,20 +4,20 @@ import LandingPage from "./pages/landing_page";
import Survey from "./pages/survey";
import Shortcuts from "./pages/shortcuts";
import BugReport from "./pages/bug_report";
+import SignUp from "./pages/signup";
function App() {
return (
- <>
-