diff --git a/backend/package-lock.json b/backend/package-lock.json index a19137fa..f85c7b95 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -9,7 +9,6 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "dependencies": "^0.0.1", "@supabase/supabase-js": "^2.46.1", "cors": "^2.8.5", "dotenv": "^16.4.5", @@ -2933,6 +2932,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3008,45 +3008,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -3194,14 +3155,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bin-links": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", @@ -3426,11 +3379,6 @@ } ] }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3563,17 +3511,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -3640,11 +3577,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -3691,17 +3623,6 @@ "node": ">= 8" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -3771,14 +3692,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -3787,17 +3700,6 @@ "node": ">= 0.8" } }, - "node_modules/dependencies": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/dependencies/-/dependencies-0.0.1.tgz", - "integrity": "sha512-geDgiSknEUQ3IV0hr8EnkrZRdgdybxMzySyWRE8P/TE4teCV7g1rRrHAjd6TdlOLIkZVQm+tZU9AxdLv/m57kg==", - "dependencies": { - "async": "*", - "node-walker": "*", - "request": "*", - "underscore": "*" - } - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -3841,15 +3743,6 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -4300,23 +4193,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -4337,7 +4218,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -4497,27 +4379,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -4636,14 +4497,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4706,27 +4559,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4801,20 +4633,6 @@ "node": ">= 0.8" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", @@ -5030,21 +4848,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -5783,11 +5591,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -5812,15 +5615,11 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -5828,11 +5627,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -5877,20 +5671,6 @@ "node": ">=10" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", @@ -6258,14 +6038,6 @@ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, - "node_modules/node-walker": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/node-walker/-/node-walker-0.1.0.tgz", - "integrity": "sha512-oC1skUd/BuOroGKhTnUJn1B20ETn9SFaHjRRfS911XcdQxTlzDEWTaK0KJpgluI66tHvFBC3QnN5x7YlZb5SeQ==", - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/nodemon": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", @@ -6356,14 +6128,6 @@ "node": ">=8" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6586,11 +6350,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -6707,14 +6466,6 @@ "node": ">= 0.10" } }, - "node_modules/psl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", - "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", - "dependencies": { - "punycode": "^2.3.1" - } - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -6725,6 +6476,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -6895,45 +6647,6 @@ "regjsparser": "bin/parser" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7296,30 +7009,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -7557,18 +7246,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -7586,22 +7263,6 @@ "typescript": ">=4.2.0" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7667,11 +7328,6 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "node_modules/underscore": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", - "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==" - }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", @@ -7759,6 +7415,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -7771,15 +7428,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -7802,19 +7450,6 @@ "node": ">= 0.8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", diff --git a/backend/package.json b/backend/package.json index 9634e7a3..b593bde9 100644 --- a/backend/package.json +++ b/backend/package.json @@ -16,7 +16,6 @@ "dependencies": { "@supabase/supabase-js": "^2.46.1", "cors": "^2.8.5", - "dependencies": "^0.0.1", "dotenv": "^16.4.5", "express": "^4.21.0", "jsonwebtoken": "^9.0.2", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 25e3d790..84259995 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,9 +8,9 @@ "name": "frontend", "version": "0.0.0", "dependencies": { - "dependencies": "^0.0.1", "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", + "@heroicons/react": "^2.2.0", "@mui/icons-material": "^6.1.2", "@mui/material": "^6.1.2", "@supabase/supabase-js": "^2.45.5", @@ -2485,6 +2485,14 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@heroicons/react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz", + "integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==", + "peerDependencies": { + "react": ">= 16 || ^19.0.0-rc" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -4108,6 +4116,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4319,27 +4328,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4360,19 +4348,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" - }, "node_modules/axios": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", @@ -4572,14 +4547,6 @@ ], "optional": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4755,11 +4722,6 @@ "node": "^18.12.0 || >= 20.9.0" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -4901,11 +4863,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -4983,17 +4940,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -5185,17 +5131,6 @@ "node": ">=0.4.0" } }, - "node_modules/dependencies": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/dependencies/-/dependencies-0.0.1.tgz", - "integrity": "sha512-geDgiSknEUQ3IV0hr8EnkrZRdgdybxMzySyWRE8P/TE4teCV7g1rRrHAjd6TdlOLIkZVQm+tZU9AxdLv/m57kg==", - "dependencies": { - "async": "*", - "node-walker": "*", - "request": "*", - "underscore": "*" - } - }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -5250,15 +5185,6 @@ "csstype": "^3.0.2" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/electron-to-chromium": { "version": "1.5.62", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.62.tgz", @@ -5910,23 +5836,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -5959,7 +5873,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -6074,14 +5989,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -6231,14 +6138,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -6324,27 +6223,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -6444,20 +6322,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -6943,11 +6807,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -7000,11 +6859,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -8139,11 +7993,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -8166,15 +8015,11 @@ "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==" }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -8182,11 +8027,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -8199,20 +8039,6 @@ "node": ">=6" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -8549,14 +8375,6 @@ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, - "node_modules/node-walker": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/node-walker/-/node-walker-0.1.0.tgz", - "integrity": "sha512-oC1skUd/BuOroGKhTnUJn1B20ETn9SFaHjRRfS911XcdQxTlzDEWTaK0KJpgluI66tHvFBC3QnN5x7YlZb5SeQ==", - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -8578,14 +8396,6 @@ "node": ">=8" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -8879,11 +8689,6 @@ "path2d": "^0.2.1" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -9111,14 +8916,6 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "node_modules/psl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", - "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", - "dependencies": { - "punycode": "^2.3.1" - } - }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", @@ -9133,6 +8930,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -9153,14 +8951,6 @@ } ] }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -9455,50 +9245,6 @@ "regjsparser": "bin/parser" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -9659,7 +9405,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "optional": true }, "node_modules/safe-regex-test": { "version": "1.0.3", @@ -9678,11 +9425,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -9865,30 +9607,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -10185,18 +9903,6 @@ "node": ">=8.0" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -10218,6 +9924,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "optional": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -10225,11 +9932,6 @@ "node": "*" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10365,11 +10067,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/underscore": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", - "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==" - }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", @@ -10449,6 +10146,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -10459,15 +10157,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "optional": true }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -10482,19 +10171,6 @@ "node": ">=10.12.0" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/vite": { "version": "5.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", diff --git a/frontend/package.json b/frontend/package.json index 9894ef85..981438d9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,11 +13,11 @@ "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", + "@heroicons/react": "^2.2.0", "@mui/icons-material": "^6.1.2", "@mui/material": "^6.1.2", "@supabase/supabase-js": "^2.45.5", "axios": "^1.7.7", - "dependencies": "^0.0.1", "pdfjs-dist": "^4.7.76", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/frontend/src/App.css b/frontend/src/App.css index 346c36a1..ca8e8130 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -1,10 +1,3 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - .logo { height: 6em; padding: 1.5em; diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 4c9327ba..16e2e5ba 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -76,7 +76,7 @@ function App() { const handleClickLogout = async () => { try { await logout(); - navigate("/home"); + navigate("/login"); } catch (e) { console.log("Failed to logout: " + e.message); } diff --git a/frontend/src/assets/flow-leaflets-logo.svg b/frontend/src/assets/flow-leaflets-logo.svg new file mode 100644 index 00000000..4e3d4a67 --- /dev/null +++ b/frontend/src/assets/flow-leaflets-logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/magnifying-glass.svg b/frontend/src/assets/magnifying-glass.svg new file mode 100644 index 00000000..d21368bd --- /dev/null +++ b/frontend/src/assets/magnifying-glass.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/components/AppBar/AppBar.css b/frontend/src/components/AppBar/AppBar.css new file mode 100644 index 00000000..55cd95e2 --- /dev/null +++ b/frontend/src/components/AppBar/AppBar.css @@ -0,0 +1,85 @@ +.app-bar { + display: flex; + box-sizing: border-box; + position: sticky; + top: 0; + left: 0; + height: 120px; + width: 98vw; + padding: 1rem 3rem 1rem 2rem; + justify-content: space-between; + align-items: center; + background-color: #F7FAFF; + z-index: 1000; +} + +.logo { + padding: 0px; + height: 85px; + width: 85px; +} + +.icon-search-filter-container { + display: flex; + flex-direction: row; + align-items: center; + gap: 100px; +} + +.search-filter-container { + display: flex; + flex-direction: row; + gap: 12px; +} + +.search-input { + height: 18px; + font-size: 16px; + padding: 12px 20px 12px 40px; + background-color: white; + background-image: url('../../assets/magnifying-glass.svg'); + background-position: 10px 10px; + background-repeat: no-repeat; + background-size: 20px 20px; + background-color: #FBFCFE; + border: none; + border-radius: 20px; + box-shadow: 0px 0px 10px #e3e8f2; +} + +.app-bar-filter-button { + display: flex; + height: 40px; + flex-direction: row; + justify-content: center; + align-items: center; + color: #2F3C50; + background-color: #FBFCFE; + box-shadow: 0px 0px 10px #e3e8f2; + border-radius: 20px; + gap: 10px; +} + +.small-icon-buttons-container { + display: flex; + flex-direction: row; + gap: 12px; +} + +.small-icon-button { + display: flex; + height: 48px; + width: 54px; + flex-direction: row; + justify-content: center; + align-items: center; + color: #2F3C50; + background-color: #FBFCFE; + box-shadow: 0px 0px 10px #e3e8f2; + border-radius: 20px; +} + +.app-bar-icon { + height: 24px; + width: 24px; +} diff --git a/frontend/src/components/AppBar/AppBar.jsx b/frontend/src/components/AppBar/AppBar.jsx new file mode 100644 index 00000000..11ec72cf --- /dev/null +++ b/frontend/src/components/AppBar/AppBar.jsx @@ -0,0 +1,34 @@ +import Logo from "../../assets/flow-leaflets-logo.svg"; +import { + AdjustmentsHorizontalIcon, + BellIcon, + UserCircleIcon +} from '@heroicons/react/24/outline'; +import "./AppBar.css" + +export const AppBar = () => { + return ( +
+
+ +
+ + +
+
+
+
+ + +
+
+
+ ) +} \ No newline at end of file diff --git a/frontend/src/components/Buttons/CLButtons.css b/frontend/src/components/Buttons/CLButtons.css new file mode 100644 index 00000000..b30c47af --- /dev/null +++ b/frontend/src/components/Buttons/CLButtons.css @@ -0,0 +1,12 @@ +.primary-variant-button { + color: #F7FAFF; + background-color: #244B94; + border-radius: 20px; +} + +.secondary-variant-button { + color: #4F607E; + background-color: #F7FAFF; + border: 1px solid #9AB0E1; + border-radius: 20px; +} \ No newline at end of file diff --git a/frontend/src/components/Buttons/CLButtons.jsx b/frontend/src/components/Buttons/CLButtons.jsx new file mode 100644 index 00000000..036bdd4e --- /dev/null +++ b/frontend/src/components/Buttons/CLButtons.jsx @@ -0,0 +1,57 @@ +import "./CLButtons.css" + +const DEFAULT_HEIGHT = "54px" +const DEFAULT_WIDTH = "fit-content" +const DEFAULT_ON_CLICK = () => {} + +/** + * PRIMARY variant of the clinical logging button. + * Should work out of the box for most use cases (with the exception of onClick which does nothing by default). + * The height and width are customizable if necessary. + */ +export const CLButtonPrimary = ({ + children, + height = DEFAULT_HEIGHT, + width = DEFAULT_WIDTH, + onClick = DEFAULT_ON_CLICK +}) => { + + return ( + + ) +} + +/** + * SECONDARY variant of the clinical logging button. + * Should work out of the box for most use cases (with the exception of onClick which does nothing by default). + * The height and width are customizable if necessary. + */ +export const CLButtonSecondary = ({ + children, + height = DEFAULT_HEIGHT, + width = DEFAULT_WIDTH, + onClick = DEFAULT_ON_CLICK +}) => { + + return ( + + ) +} \ No newline at end of file diff --git a/frontend/src/components/Buttons/CreateNewLogButton.css b/frontend/src/components/Buttons/CreateNewLogButton.css deleted file mode 100644 index 3831f023..00000000 --- a/frontend/src/components/Buttons/CreateNewLogButton.css +++ /dev/null @@ -1,4 +0,0 @@ -.add-icon { - margin-right: 9px; - vertical-align: -6px; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/CreateNewLogButton.jsx b/frontend/src/components/Buttons/CreateNewLogButton.jsx deleted file mode 100644 index f39087fb..00000000 --- a/frontend/src/components/Buttons/CreateNewLogButton.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import AddIcon from "@mui/icons-material/Add"; -import { useNavigate } from "react-router-dom"; -import "./CreateNewLogButton.css"; - -export default function CreateNewLogButton({ variant }) { - const navigate = useNavigate(); - - const handleCreateNewLog = () => { - navigate("/newLog"); - }; - - return ( - - ); -} diff --git a/frontend/src/components/Buttons/HomeButton.jsx b/frontend/src/components/Buttons/HomeButton.jsx deleted file mode 100644 index f7a8e407..00000000 --- a/frontend/src/components/Buttons/HomeButton.jsx +++ /dev/null @@ -1,11 +0,0 @@ -import { useNavigate } from "react-router-dom"; - -export default function HomeButton() { - const navigate = useNavigate(); - - const handleHomeClick = () => { - navigate("/dashboard"); - }; - - return ; -} diff --git a/frontend/src/components/Buttons/LogHistoryButton.css b/frontend/src/components/Buttons/LogHistoryButton.css deleted file mode 100644 index f9a21a14..00000000 --- a/frontend/src/components/Buttons/LogHistoryButton.css +++ /dev/null @@ -1,4 +0,0 @@ -.history-icon { - margin-right: 9px; - vertical-align: -6px; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/LogHistoryButton.jsx b/frontend/src/components/Buttons/LogHistoryButton.jsx deleted file mode 100644 index 84954962..00000000 --- a/frontend/src/components/Buttons/LogHistoryButton.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import { useNavigate } from "react-router-dom"; -import HistoryIcon from "@mui/icons-material/History"; -import "./LogHistoryButton.css"; - -export default function LogHistoryButton({ variant }) { - const navigate = useNavigate(); - - const handleViewHistory = () => { - navigate("/logHistory"); - }; - - return ( - - ); -} diff --git a/frontend/src/components/Buttons/SignInButton.css b/frontend/src/components/Buttons/SignInButton.css deleted file mode 100644 index 3caa433d..00000000 --- a/frontend/src/components/Buttons/SignInButton.css +++ /dev/null @@ -1,10 +0,0 @@ -.sign-in-button-container { - display: flex; - gap: 9px; - } - -.login-icon { - margin-left: 8px; - font-size: 1.2rem; - vertical-align: middle; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/SignInButton.jsx b/frontend/src/components/Buttons/SignInButton.jsx deleted file mode 100644 index 5ddb730a..00000000 --- a/frontend/src/components/Buttons/SignInButton.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import { useNavigate } from "react-router-dom"; -import LoginIcon from "@mui/icons-material/Login"; -import "./SignInButton.css"; - -export default function SignInButton() { - const navigate = useNavigate(); - - const handleSignInClick = () => { - navigate("/login"); - }; - - return ( -
- -
- ); -} diff --git a/frontend/src/components/Buttons/SignOutButton.css b/frontend/src/components/Buttons/SignOutButton.css deleted file mode 100644 index 6f6a4b22..00000000 --- a/frontend/src/components/Buttons/SignOutButton.css +++ /dev/null @@ -1,10 +0,0 @@ -.sign-out-button-container { - display: flex; - gap: 9px; - } - -.sign-out-icon { - margin-left: 8px; - font-size: 1.2rem; - vertical-align: middle; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/SignOutButton.jsx b/frontend/src/components/Buttons/SignOutButton.jsx deleted file mode 100644 index 65cd7b9b..00000000 --- a/frontend/src/components/Buttons/SignOutButton.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import { useAuth } from "../../contexts/AuthContext"; -import LogoutIcon from "@mui/icons-material/Logout"; -import "./SignOutButton.css"; - -export default function SignOutButton() { - const { logout } = useAuth(); - - const handleSignOutClick = async () => { - try { - await logout(); - } catch { - console.log("Failed to logout"); - } - }; - - return ( -
- -
- ); -} diff --git a/frontend/src/components/Buttons/SignUpButton.css b/frontend/src/components/Buttons/SignUpButton.css deleted file mode 100644 index 512fad28..00000000 --- a/frontend/src/components/Buttons/SignUpButton.css +++ /dev/null @@ -1,4 +0,0 @@ -.sign-up-button-container { - display: flex; - gap: 8px; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/SignUpButton.jsx b/frontend/src/components/Buttons/SignUpButton.jsx deleted file mode 100644 index 6be86bd7..00000000 --- a/frontend/src/components/Buttons/SignUpButton.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import { useNavigate } from "react-router-dom"; -import "./SignUpButton.css"; - -export default function SignUpButton() { - const navigate = useNavigate(); - - const handleSignUpClick = () => { - navigate("/signup"); - }; - return ( -
- -
- ); -} diff --git a/frontend/src/components/LogHistory/Pagination.css b/frontend/src/components/LogHistory/Pagination.css index 2978869e..36eb5f0d 100644 --- a/frontend/src/components/LogHistory/Pagination.css +++ b/frontend/src/components/LogHistory/Pagination.css @@ -3,7 +3,7 @@ justify-content: space-between; align-items: center; margin-top: 1em; - color: #e0e0e0; + color: #1a1a1a; } .pagination span { @@ -16,8 +16,8 @@ } .page-buttons button { - background: #1a1a1a; - color: #e0e0e0; + background: #e0e0e0; + color: #1a1a1a; padding: 0.4em 0.6em; cursor: pointer; border-radius: 4px; diff --git a/frontend/src/components/LogHistory/SearchFilterSort.css b/frontend/src/components/LogHistory/SearchFilterSort.css index 6661624f..6462ac53 100644 --- a/frontend/src/components/LogHistory/SearchFilterSort.css +++ b/frontend/src/components/LogHistory/SearchFilterSort.css @@ -10,8 +10,8 @@ .search-filter-sort input[type="text"], .search-filter-sort select { padding: 0.6rem; - background-color: #2c2c2c; - color: #e0e0e0; + background-color: #F7FAFF; + color: #666B6F; border: 1px solid #444; border-radius: 4px; } @@ -19,8 +19,8 @@ /* Filter button to open/close dropdown */ .filter-button { padding: 0.6rem; - background-color: #444; - color: #e0e0e0; + background-color: #e0e0e0; + color: #444; border: none; cursor: pointer; border-radius: 4px; diff --git a/frontend/src/components/NavContentWrapper/NavContentWrapper.css b/frontend/src/components/NavContentWrapper/NavContentWrapper.css new file mode 100644 index 00000000..fceb9ce5 --- /dev/null +++ b/frontend/src/components/NavContentWrapper/NavContentWrapper.css @@ -0,0 +1,3 @@ +.child-container { + margin-left: 200px; +} \ No newline at end of file diff --git a/frontend/src/components/NavContentWrapper/NavContentWrapper.jsx b/frontend/src/components/NavContentWrapper/NavContentWrapper.jsx new file mode 100644 index 00000000..807b9d8e --- /dev/null +++ b/frontend/src/components/NavContentWrapper/NavContentWrapper.jsx @@ -0,0 +1,18 @@ +import { AppBar } from "../AppBar/AppBar" +import { Navbar } from "../Navbar/Navbar" + +/** + * Wraps the child component in the side navigation bar and the top application bar. + * Formats the layout so that only the inner child component is scrollable. + */ +export const NavContentWrapper = ({children}) => { + return ( +
+ + +
+ {children} +
+
+ ) +} \ No newline at end of file diff --git a/frontend/src/components/Navbar/Navbar.css b/frontend/src/components/Navbar/Navbar.css index 49db6121..9d2bff05 100644 --- a/frontend/src/components/Navbar/Navbar.css +++ b/frontend/src/components/Navbar/Navbar.css @@ -1,21 +1,85 @@ -.navbar { +.nav-bar { display: flex; + flex-direction: column; + position: fixed; + top: 24%; + left: 32px; + height: 540px; + width: 100px; justify-content: space-between; align-items: center; - padding: 16px; - width: 100vw; - height: 80px; - background-color: #242424; - position: fixed; - top: 0; - left: 0; - right: 0; - border-bottom: 2px solid rgba(255, 255, 255, 0.3); + overflow: auto; + z-index: 500; +} + +.nav-button-container { + height: 350px; + width: 80px; + padding: 24px 0 24px 0; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + background-color: white; + border-radius: 50px; + box-shadow: 0px 0px 10px #e3e8f2; } -.nav-buttons-container { +.nav-button { display: flex; - gap: 8px; - margin-top: 10px; - margin-right: 30px; -} \ No newline at end of file + flex-direction: column; + align-items: center; + background-color: transparent; +} + +.nav-button-icon-container { + height: 64px; + width: 64px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 40px; + color: #244B94; + background-color: #CDD8F0; +} + +.nav-button.active .nav-button-icon-container { + color: #F7FAFF; + background-color: #244B94; +} + +.nav-button-icon-container:hover { + color: #F7FAFF; + background-color: #244B94; +} + +.nav-button-text { + margin-top: 4px; + color: #666B6F; +} + +.nav-button.active .nav-button-text { + color: #244B94; + font-weight: bold; +} + +.logout-button { + height: 60px; + width: 60px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 40px; + color: #244B94; + background-color: white; + box-shadow: 0px 0px 10px #e3e8f2 +} + +.logout-button:hover { + background-color: #CDD8F0; +} + +.nav-icon { + height: 34px; + width: 34px; +} diff --git a/frontend/src/components/Navbar/Navbar.jsx b/frontend/src/components/Navbar/Navbar.jsx index 9666a7a4..09e0276d 100644 --- a/frontend/src/components/Navbar/Navbar.jsx +++ b/frontend/src/components/Navbar/Navbar.jsx @@ -1,51 +1,49 @@ -import Logo from "../Logo/Logo"; -import HomeButton from "../Buttons/HomeButton"; -import CreateNewLogButton from "../Buttons/CreateNewLogButton"; -import LogHistoryButton from "../Buttons/LogHistoryButton"; -import SignInButton from "../Buttons/SignInButton"; +import { NavLink } from 'react-router-dom'; import { useAuth } from "../../contexts/AuthContext"; +import { + HomeIcon, + BookOpenIcon, + ClockIcon, + ArrowLeftStartOnRectangleIcon +} from '@heroicons/react/24/outline'; import "./Navbar.css"; -import SignOutButton from "../Buttons/SignOutButton"; -export default function Navbar({ variant }) { - return ( -
- -
- ); -} - -function NavbarComponent({ variant }) { - return ( -
- - -
- ); -} - -function NavButtons({ variant }) { - return ( -
- {variant === "homepage" ? ( - - ) : ( - <> - - - - - )} -
- ); -} +export const Navbar = () => { + const { logout } = useAuth(); -function Buttons() { - const { session } = useAuth(); + const handleSignOut = async () => { + try { + await logout(); + } catch { + console.log("Failed to logout"); + } + }; return ( -
- {session ? : } -
+ ); } diff --git a/frontend/src/index.css b/frontend/src/index.css index d7ff7205..fabc8fed 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -3,9 +3,9 @@ line-height: 1.5; font-weight: 400; - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; + color-scheme: light; + color: #1E1E1E; + background-color: #F7FAFF; font-synthesis: none; text-rendering: optimizeLegibility; @@ -31,37 +31,9 @@ h1 { } button { - border-radius: 8px; border: 1px solid transparent; - padding: 0.6em 1.2em; font-size: 1em; font-weight: 500; font-family: inherit; - background-color: #1a1a1a; cursor: pointer; - transition: border-color 0.25s; } - -button:hover { - border-color: #646cff; -} - -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - - a:hover { - color: #747bff; - } - - button { - background-color: #f9f9f9; - } -} \ No newline at end of file diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx index 46329ed2..cccec681 100644 --- a/frontend/src/main.jsx +++ b/frontend/src/main.jsx @@ -6,12 +6,11 @@ import App from "./App.jsx"; import Login from "./pages/login/Login.jsx"; import SignUp from "./pages/sign_up/SignUp.jsx"; import NotFound from "./pages/not_found/NotFound.jsx"; -import Home from "./pages/Homepage.jsx"; -import Dashboard from "./pages/Dashboard.jsx"; -import NewLog from "./pages/NewLog.jsx"; -import LogHistory from "./pages/LogHistory.jsx"; -import UploadPhotos from "./pages/UploadPhoto.jsx"; -import ManualEdit from "./pages/ManualEdit.jsx"; +import Home from "./pages/home/Home.jsx"; +import NewLog from "./pages/new_log/NewLog.jsx"; +import LogHistory from "./pages/log_history/LogHistory.jsx"; +import UploadPhotos from "./pages/upload_photo/UploadPhoto.jsx"; +import ManualEntry from "./pages/manual_entry/ManualEntry.jsx"; import "./index.css"; createRoot(document.getElementById("root")).render( @@ -19,15 +18,14 @@ createRoot(document.getElementById("root")).render( } /> - } /> } /> }> } /> - } /> } /> + } /> } /> } /> - } /> + } /> } /> diff --git a/frontend/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx deleted file mode 100644 index 2156cd07..00000000 --- a/frontend/src/pages/Dashboard.jsx +++ /dev/null @@ -1,40 +0,0 @@ -import Logo from "../components/Logo/Logo"; -import CreateNewLogButton from "../components/Buttons/CreateNewLogButton"; -import LogHistoryButton from "../components/Buttons/LogHistoryButton"; -import "./styles/Dashboard.css"; - -export default function Dashboard() { - return ( -
-
- -
-
- -
-
- ); -} - -function MainContent() { - return ( -
- - Convert handwritten clinical logs to a
- standardized Excel template with just a click of a button! -
-
- -
-
- ); -} - -function Buttons() { - return ( -
- - -
- ); -} diff --git a/frontend/src/pages/Homepage.jsx b/frontend/src/pages/Homepage.jsx deleted file mode 100644 index 82aabaf2..00000000 --- a/frontend/src/pages/Homepage.jsx +++ /dev/null @@ -1,29 +0,0 @@ -import SignUpButton from "../components/Buttons/SignUpButton"; -import Navbar from "../components/Navbar/Navbar"; - -const mainColour = "#646cff"; - -export default function Home() { - return ( -
- - -
- ); -} - -function CTASection() { - return ( -
-

- Welcome to
- FlowLeaflets -

-

- Detailed caselogs for patients you see, vital care for those in need, - globally -

- -
- ); -} diff --git a/frontend/src/pages/home/Home.css b/frontend/src/pages/home/Home.css new file mode 100644 index 00000000..982ac496 --- /dev/null +++ b/frontend/src/pages/home/Home.css @@ -0,0 +1,32 @@ +.main-content { + flex-grow: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + margin-top: 200px; +} + +.main-content-buttons { + font-size: 17px; + display: flex; + flex-direction: column; + align-items: center; + margin-top: 30px; + gap: 10px; +} + +.buttons-container { + display: flex; + flex-direction: column; + gap: 10px; +} + +.cta-paragraph { + text-align: center; + font-size: 1.1rem; + color: #64748b; + width: 450px; + margin-top: -1rem; +} \ No newline at end of file diff --git a/frontend/src/pages/home/Home.jsx b/frontend/src/pages/home/Home.jsx index e69de29b..08316051 100644 --- a/frontend/src/pages/home/Home.jsx +++ b/frontend/src/pages/home/Home.jsx @@ -0,0 +1,56 @@ +import { NavContentWrapper } from "../../components/NavContentWrapper/NavContentWrapper"; +import { CLButtonPrimary, CLButtonSecondary } from "../../components/Buttons/CLButtons"; +import { useNavigate } from "react-router-dom"; +import "./Home.css"; + +export default function Home() { + return ( + + + + ); +} + +function MainContent() { + return ( +
+

+ Convert handwritten clinical logs to a
+ standardized Excel template with just a click of a button! +

+
+ +
+
+ ); +} + +function Buttons() { + const navigate = useNavigate(); + + const handleCreateNewLog = () => { + navigate("/newLog"); + }; + + const handleAddLogbook = () => { + navigate("/uploadPhotos") + } + + const handleViewHistory = () => { + navigate("/logHistory"); + }; + + return ( +
+ + Create New Log + + + Add Logbook + + + View Log History + +
+ ); +} diff --git a/frontend/src/pages/log_history/LogHistory.css b/frontend/src/pages/log_history/LogHistory.css new file mode 100644 index 00000000..eb220d40 --- /dev/null +++ b/frontend/src/pages/log_history/LogHistory.css @@ -0,0 +1,9 @@ +.log-history-container { + display: flex; + flex-direction: column; + align-items: center; +} + +.container { + width: 80%; +} \ No newline at end of file diff --git a/frontend/src/pages/LogHistory.jsx b/frontend/src/pages/log_history/LogHistory.jsx similarity index 90% rename from frontend/src/pages/LogHistory.jsx rename to frontend/src/pages/log_history/LogHistory.jsx index baba06c1..39c229af 100644 --- a/frontend/src/pages/LogHistory.jsx +++ b/frontend/src/pages/log_history/LogHistory.jsx @@ -1,9 +1,9 @@ import { useState } from "react"; -import Navbar from "../components/Navbar/Navbar"; -import SearchFilterSort from "../components/LogHistory/SearchFilterSort"; -import LogTable from "../components/LogHistory/LogTable"; -import Pagination from "../components/LogHistory/Pagination"; -import "./styles/LogHistory.css"; +import { NavContentWrapper } from "../../components/NavContentWrapper/NavContentWrapper"; +import SearchFilterSort from "../../components/LogHistory/SearchFilterSort"; +import LogTable from "../../components/LogHistory/LogTable"; +import Pagination from "../../components/LogHistory/Pagination"; +import "./LogHistory.css"; const LogHistory = () => { const initialLogs = [ @@ -131,10 +131,9 @@ const LogHistory = () => { ); return ( -
- -
-
+ +
+
{ />
-
+ ); }; diff --git a/frontend/src/pages/log_history/__tests__/LogHistory.test.js b/frontend/src/pages/log_history/__tests__/LogHistory.test.js new file mode 100644 index 00000000..d8d52d4b --- /dev/null +++ b/frontend/src/pages/log_history/__tests__/LogHistory.test.js @@ -0,0 +1,3 @@ +test("empty test", () => { + expect(true).toBe(true) +}) \ No newline at end of file diff --git a/frontend/src/pages/login/Login.jsx b/frontend/src/pages/login/Login.jsx index 8045046a..ff249a1a 100644 --- a/frontend/src/pages/login/Login.jsx +++ b/frontend/src/pages/login/Login.jsx @@ -13,7 +13,7 @@ export default function Login() { useEffect(() => { if (session) { - navigate("/dashboard"); + navigate("/homepage"); } }, [session, navigate]); @@ -23,7 +23,7 @@ export default function Login() { try { setLoading(true); await login(email, password); - navigate("/dashboard"); + navigate("/homepage"); } catch { alert("Failed to login: Email or Password Incorrect"); } diff --git a/frontend/src/pages/ManualEdit.jsx b/frontend/src/pages/manual_entry/ManualEntry.jsx similarity index 100% rename from frontend/src/pages/ManualEdit.jsx rename to frontend/src/pages/manual_entry/ManualEntry.jsx diff --git a/frontend/src/pages/manual_entry/__tests__/ManualEntry.test.js b/frontend/src/pages/manual_entry/__tests__/ManualEntry.test.js new file mode 100644 index 00000000..d8d52d4b --- /dev/null +++ b/frontend/src/pages/manual_entry/__tests__/ManualEntry.test.js @@ -0,0 +1,3 @@ +test("empty test", () => { + expect(true).toBe(true) +}) \ No newline at end of file diff --git a/frontend/src/pages/styles/NewLog.css b/frontend/src/pages/new_log/NewLog.css similarity index 91% rename from frontend/src/pages/styles/NewLog.css rename to frontend/src/pages/new_log/NewLog.css index 828ee3d4..12708c0b 100644 --- a/frontend/src/pages/styles/NewLog.css +++ b/frontend/src/pages/new_log/NewLog.css @@ -2,6 +2,7 @@ display: flex; flex-direction: column; align-items: center; + justify-content: center; margin-left: 64px; margin-right: 64px; margin-top: 200px; diff --git a/frontend/src/pages/NewLog.jsx b/frontend/src/pages/new_log/NewLog.jsx similarity index 58% rename from frontend/src/pages/NewLog.jsx rename to frontend/src/pages/new_log/NewLog.jsx index f434b282..1f07f767 100644 --- a/frontend/src/pages/NewLog.jsx +++ b/frontend/src/pages/new_log/NewLog.jsx @@ -1,19 +1,19 @@ import { useNavigate } from "react-router-dom"; +import { NavContentWrapper } from "../../components/NavContentWrapper/NavContentWrapper"; import ImageIcon from "@mui/icons-material/Image"; import ModeIcon from "@mui/icons-material/Mode"; -import Navbar from "../components/Navbar/Navbar"; -import "./styles/NewLog.css"; +import { CLButtonPrimary, CLButtonSecondary } from "../../components/Buttons/CLButtons"; +import "./NewLog.css"; export default function NewLog() { return ( -
- - -
+ + + ); } -function CTASection() { +function MainContent() { const navigate = useNavigate(); const handleUploadPhoto = () => { @@ -28,14 +28,14 @@ function CTASection() {

How would you like to create a new log?

- - +
); diff --git a/frontend/src/pages/new_log/__tests__/NewLog.test.js b/frontend/src/pages/new_log/__tests__/NewLog.test.js new file mode 100644 index 00000000..d8d52d4b --- /dev/null +++ b/frontend/src/pages/new_log/__tests__/NewLog.test.js @@ -0,0 +1,3 @@ +test("empty test", () => { + expect(true).toBe(true) +}) \ No newline at end of file diff --git a/frontend/src/pages/sign_up/SignUp.jsx b/frontend/src/pages/sign_up/SignUp.jsx index 6399c404..1dac43a7 100644 --- a/frontend/src/pages/sign_up/SignUp.jsx +++ b/frontend/src/pages/sign_up/SignUp.jsx @@ -16,7 +16,7 @@ export default function SignUp() { useEffect(() => { if (session) { - navigate("/dashboard"); + navigate("/homepage"); } }, [session, navigate]); @@ -32,7 +32,7 @@ export default function SignUp() { try { setLoading(true); await register(firstName, lastName, email, password); - navigate("/dashboard"); + navigate("/homepage"); } catch (error) { if (error.code === "weak_password") { alert( diff --git a/frontend/src/pages/styles/Dashboard.css b/frontend/src/pages/styles/Dashboard.css deleted file mode 100644 index d2a593a5..00000000 --- a/frontend/src/pages/styles/Dashboard.css +++ /dev/null @@ -1,20 +0,0 @@ -.main-content-text { - font-size: 20px; - font-weight: 800; - margin-top: -100px; -} - -.main-content-buttons { - font-size: 17px; - display: flex; - flex-direction: column; - align-items: center; - margin-top: 30px; - gap: 10px; -} - -.buttons-container { - display: flex; - flex-direction: column; - gap: 10px; -} \ No newline at end of file diff --git a/frontend/src/pages/styles/Homepage.css b/frontend/src/pages/styles/Homepage.css deleted file mode 100644 index 73cb697c..00000000 --- a/frontend/src/pages/styles/Homepage.css +++ /dev/null @@ -1,16 +0,0 @@ -.cta-section { - display: flex; - flex-direction: column; - align-items: center; - margin-left: 64px; - margin-right: 64px; - margin-top: 200px; -} - -.cta-paragraph { - text-align: center; - font-size: 1.1rem; - color: #64748b; - width: 450px; - margin-top: -1rem; -} \ No newline at end of file diff --git a/frontend/src/pages/styles/LogHistory.css b/frontend/src/pages/styles/LogHistory.css deleted file mode 100644 index 0cf0e828..00000000 --- a/frontend/src/pages/styles/LogHistory.css +++ /dev/null @@ -1,9 +0,0 @@ -.log-history-container { - display: flex; - flex-direction: column; - align-items: center; - } - -.container { - width: 80%; -} \ No newline at end of file diff --git a/frontend/src/pages/styles/UploadPhoto.css b/frontend/src/pages/upload_photo/UploadPhoto.css similarity index 90% rename from frontend/src/pages/styles/UploadPhoto.css rename to frontend/src/pages/upload_photo/UploadPhoto.css index 3eaf9b45..29bf172f 100644 --- a/frontend/src/pages/styles/UploadPhoto.css +++ b/frontend/src/pages/upload_photo/UploadPhoto.css @@ -54,19 +54,6 @@ border-right: 1px solid #e5e7eb; } -.page-container { - display: flex; - height: 100vh; -} - -.main-content { - flex-grow: 1; - display: flex; - justify-content: center; - align-items: center; - text-align: center; -} - .nav-icon-left { margin-right: 3px; margin-left: -2px; diff --git a/frontend/src/pages/UploadPhoto.jsx b/frontend/src/pages/upload_photo/UploadPhoto.jsx similarity index 91% rename from frontend/src/pages/UploadPhoto.jsx rename to frontend/src/pages/upload_photo/UploadPhoto.jsx index 57cefc46..c3c0b2ca 100644 --- a/frontend/src/pages/UploadPhoto.jsx +++ b/frontend/src/pages/upload_photo/UploadPhoto.jsx @@ -1,11 +1,11 @@ import { useState } from "react"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useNavigate } from "react-router-dom"; -import UploadArea from "../components/UploadPhoto/UploadArea"; -import PreviewSection from "../components/UploadPhoto/PreviewSection"; +import UploadArea from "../../components/UploadPhoto/UploadArea"; +import PreviewSection from "../../components/UploadPhoto/PreviewSection"; import ArrowForwardIosIcon from "@mui/icons-material/ArrowForwardIos"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; -import "./styles/UploadPhoto.css"; +import "./UploadPhoto.css"; export default function UploadPhotos() { const [imageFiles, setImageFiles] = useState([]); diff --git a/frontend/src/pages/upload_photo/__tests__/UploadPhoto.test.js b/frontend/src/pages/upload_photo/__tests__/UploadPhoto.test.js new file mode 100644 index 00000000..d8d52d4b --- /dev/null +++ b/frontend/src/pages/upload_photo/__tests__/UploadPhoto.test.js @@ -0,0 +1,3 @@ +test("empty test", () => { + expect(true).toBe(true) +}) \ No newline at end of file diff --git a/frontend/src/utils/ProtectedRoutes.jsx b/frontend/src/utils/ProtectedRoutes.jsx index 78eecd6f..0e84b34c 100644 --- a/frontend/src/utils/ProtectedRoutes.jsx +++ b/frontend/src/utils/ProtectedRoutes.jsx @@ -3,5 +3,5 @@ import { useAuth } from '../contexts/AuthContext'; export const ProtectedRoutes = () => { const { session } = useAuth(); - return session ? : ; + return session ? : ; } \ No newline at end of file