From 7c36f82467a55be9e39f1b4f1476d74e488f851d Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 13:19:46 +0900 Subject: [PATCH 01/14] update env --- src/env.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/env.json b/src/env.json index 59b11e4..bfe7257 100644 --- a/src/env.json +++ b/src/env.json @@ -1,5 +1,5 @@ { - "current-env": "production", + "current-env": "development", "production": { "apiKey": "AIzaSyDyl-tV8qgWpgTMISb3M9ybaVxNPoGKuGA", "authDomain": "appointments-9fa9d.firebaseapp.com", From 3a4d75c844c11bb166efbef9317b7cef256f7d04 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 20:56:49 +0900 Subject: [PATCH 02/14] update env --- src/env.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/env.json b/src/env.json index 59b11e4..bfe7257 100644 --- a/src/env.json +++ b/src/env.json @@ -1,5 +1,5 @@ { - "current-env": "production", + "current-env": "development", "production": { "apiKey": "AIzaSyDyl-tV8qgWpgTMISb3M9ybaVxNPoGKuGA", "authDomain": "appointments-9fa9d.firebaseapp.com", From c01d54ab1c0c53b9c189eda37649e2833e1ed642 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 22:58:37 +0900 Subject: [PATCH 03/14] update packages --- package.json | 3 +- yarn.lock | 735 ++++++++++++++++++++++++--------------------------- 2 files changed, 341 insertions(+), 397 deletions(-) diff --git a/package.json b/package.json index f73aa1a..26d69f0 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "autoprefixer": "10.4.5", "bootstrap": "^5.1.3", "eslint": "^8.17.0", - "firebase": "^9.8.1", + "firebase": "^9.18.0", + "firebaseui": "^6.0.2", "formik": "^2.2.9", "react": "^18.1.0", "react-bootstrap": "^2.3.1", diff --git a/yarn.lock b/yarn.lock index c37c389..99a8cfc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1404,388 +1404,377 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@firebase/analytics-compat@0.1.13": - version "0.1.13" - resolved "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.1.13.tgz" - integrity sha512-QC1DH/Dwc8fBihn0H+jocBWyE17GF1fOCpCrpAiQ2u16F/NqsVDVG4LjIqdhq963DXaXneNY7oDwa25Up682AA== - dependencies: - "@firebase/analytics" "0.8.0" - "@firebase/analytics-types" "0.7.0" - "@firebase/component" "0.5.17" - "@firebase/util" "1.6.3" +"@firebase/analytics-compat@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.2.4.tgz#3887676286ead7b30f9880581e0144f43bc71f16" + integrity sha512-ZN4K49QwOR8EWIUTV03VBdcVkz8sVsfJmve4g2+FEIj0kyTK0MdoVTWNOwWj9TVi2p/7FvKRKkpWxkydmi9x7g== + dependencies: + "@firebase/analytics" "0.9.4" + "@firebase/analytics-types" "0.8.0" + "@firebase/component" "0.6.4" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/analytics-types@0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.7.0.tgz" - integrity sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ== - -"@firebase/analytics@0.8.0": +"@firebase/analytics-types@0.8.0": version "0.8.0" - resolved "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.8.0.tgz" - integrity sha512-wkcwainNm8Cu2xkJpDSHfhBSdDJn86Q1TZNmLWc67VrhZUHXIKXxIqb65/tNUVE+I8+sFiDDNwA+9R3MqTQTaA== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/installations" "0.5.12" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" + resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.8.0.tgz#551e744a29adbc07f557306530a2ec86add6d410" + integrity sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw== + +"@firebase/analytics@0.9.4": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.9.4.tgz#1b863bd795c3dbe3d278467e8c9dd0e6c54f37a3" + integrity sha512-Mb2UaD0cyJ9DrTk4Okz8wqpjZuVRVXHZOjhbQcmGb8VtibXY1+jm/k3eJ21r7NqUKnjWejYM2EX+hI9+dtXGkQ== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/installations" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/app-check-compat@0.2.12": - version "0.2.12" - resolved "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.2.12.tgz" - integrity sha512-GFppNLlUyMN9Iq31ME/+GkjRVKlc+MeanzUKQ9UaR73ZsYH3oX3Ja+xjoYgixaVJDDG+ofBYR7ZXTkkQdSR/pw== +"@firebase/app-check-compat@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.3.4.tgz#43cad88c9211a84bb98f205ba075c34acd8933c2" + integrity sha512-s6ON0ixPKe99M1DNYMI2eR5aLwQZgy0z8fuW1tnEbzg5p/N/GKFmqiIHSV4gfp8+X7Fw5NLm7qMfh4xrcPgQCw== dependencies: - "@firebase/app-check" "0.5.12" - "@firebase/app-check-types" "0.4.0" - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" + "@firebase/app-check" "0.6.4" + "@firebase/app-check-types" "0.5.0" + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/app-check-interop-types@0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz" - integrity sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA== +"@firebase/app-check-interop-types@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.2.0.tgz#9106270114ca4e7732457e8319333866a26285d8" + integrity sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ== -"@firebase/app-check-types@0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.4.0.tgz" - integrity sha512-SsWafqMABIOu7zLgWbmwvHGOeQQVQlwm42kwwubsmfLmL4Sf5uGpBfDhQ0CAkpi7bkJ/NwNFKafNDL9prRNP0Q== +"@firebase/app-check-types@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-types/-/app-check-types-0.5.0.tgz#1b02826213d7ce6a1cf773c329b46ea1c67064f4" + integrity sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ== -"@firebase/app-check@0.5.12": - version "0.5.12" - resolved "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.5.12.tgz" - integrity sha512-l+MmvupSGT/F+I5ei7XjhEfpoL4hLVJr0vUwcG5NEf2hAkQnySli9fnbl9fZu1BJaQ2kthrMmtg1gcbcM9BUCQ== +"@firebase/app-check@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.6.4.tgz#cb2f7b23f80126800a5632c1d766635266e1b2ff" + integrity sha512-M9qyVTWkEkHXmgwGtObvXQqKcOe9iKAOPqm0pCe74mzgKVTNq157ff39+fxHPb4nFbipToY+GuvtabLUzkHehQ== dependencies: - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/app-compat@0.1.31": - version "0.1.31" - resolved "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.1.31.tgz" - integrity sha512-oH3F4Pf0/Q0WTyNynMlaoM1qjUTTu7ofDdAWUOgr9BH9gftIClqeCulltXSQH3DO3XUE61pIIpIakAWQ7zzumA== +"@firebase/app-compat@0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.2.5.tgz#7253fe6b17a3128b465c96c1f374594ce91c7dcd" + integrity sha512-PSEax7UAc1Qxcksq5GHKb8M9rCsXTJWxWUf6pqhGTWO9UbJnI1tv00ogoCicEHgkXBTkOWMLxCs3318HaGZh4g== dependencies: - "@firebase/app" "0.7.30" - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" + "@firebase/app" "0.9.5" + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/app-types@0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz" - integrity sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg== +"@firebase/app-types@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.0.tgz#35b5c568341e9e263b29b3d2ba0e9cfc9ec7f01e" + integrity sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q== -"@firebase/app@0.7.30": - version "0.7.30" - resolved "https://registry.npmjs.org/@firebase/app/-/app-0.7.30.tgz" - integrity sha512-uJRMShpCWCrW6eO+/UuN0ExgztPMpK/w/AUryHJh7Ll4lFkc71pqE9P/XlfE+XXi0zkWoXVgPeLAQDkUJwgmMA== +"@firebase/app@0.9.5": + version "0.9.5" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.9.5.tgz#dabf46a6b0384b805b65c787b440a895dac2b4c4" + integrity sha512-mXO9hrygxCohD8Qy0z8p9ZtuQirmjkjSTuQghH05/kLG1UJqP0TQZBlhP5qwzMTKuu2YpIn3kX2PZoSWti8LDA== dependencies: - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" idb "7.0.1" tslib "^2.1.0" -"@firebase/auth-compat@0.2.18": - version "0.2.18" - resolved "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.2.18.tgz" - integrity sha512-Fw2PJS0G/tGrfyEBcYJQ42sfy5+sANrK5xd7tuzgV7zLFW5rYkHUIZngXjuOBwLOcfO2ixa/FavfeJle3oJ38Q== +"@firebase/auth-compat@0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.3.5.tgz#db4c41646b949ad18b4824beefd02338c3a865d6" + integrity sha512-xEkR4Buuw8NfyJhMVC3HMvyaODfstpMuo55tK03APoP+X9fnZpQE+ASdacq60qBBvpKF78d+gmAhmh0ISTXZ0w== dependencies: - "@firebase/auth" "0.20.5" - "@firebase/auth-types" "0.11.0" - "@firebase/component" "0.5.17" - "@firebase/util" "1.6.3" + "@firebase/auth" "0.21.5" + "@firebase/auth-types" "0.12.0" + "@firebase/component" "0.6.4" + "@firebase/util" "1.9.3" node-fetch "2.6.7" - selenium-webdriver "4.1.2" tslib "^2.1.0" -"@firebase/auth-interop-types@0.1.6": - version "0.1.6" - resolved "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz" - integrity sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g== +"@firebase/auth-interop-types@0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz#78884f24fa539e34a06c03612c75f222fcc33742" + integrity sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg== -"@firebase/auth-types@0.11.0": - version "0.11.0" - resolved "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.11.0.tgz" - integrity sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw== +"@firebase/auth-types@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.12.0.tgz#f28e1b68ac3b208ad02a15854c585be6da3e8e79" + integrity sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA== -"@firebase/auth@0.20.5": - version "0.20.5" - resolved "https://registry.npmjs.org/@firebase/auth/-/auth-0.20.5.tgz" - integrity sha512-SbKj7PCAuL0lXEToUOoprc1im2Lr/bzOePXyPC7WWqVgdVBt0qovbfejlzKYwJLHUAPg9UW1y3XYe3IlbXr77w== +"@firebase/auth@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.21.5.tgz#02ca0b73ae0ee69a0bab0b19da6c92a722b56a6c" + integrity sha512-Pt/S24qbtJeFPxYxcQHDNgYAuEa9oyCK1XJBQ9Kc3FT1rDMb1OaK6wfnDDrCChQfENdHZVI1pGw4QG6/tO3NWw== dependencies: - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" node-fetch "2.6.7" - selenium-webdriver "4.1.2" tslib "^2.1.0" -"@firebase/component@0.5.17": - version "0.5.17" - resolved "https://registry.npmjs.org/@firebase/component/-/component-0.5.17.tgz" - integrity sha512-mTM5CBSIlmI+i76qU4+DhuExnWtzcPS3cVgObA3VAjliPPr3GrUlTaaa8KBGfxsD27juQxMsYA0TvCR5X+GQ3Q== +"@firebase/component@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.4.tgz#8981a6818bd730a7554aa5e0516ffc9b1ae3f33d" + integrity sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA== dependencies: - "@firebase/util" "1.6.3" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/database-compat@0.2.4": - version "0.2.4" - resolved "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.2.4.tgz" - integrity sha512-VtsGixO5mTjNMJn6PwxAJEAR70fj+3blCXIdQKel3q+eYGZAfdqxox1+tzZDnf9NWBJpaOgAHPk3JVDxEo9NFQ== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/database" "0.13.4" - "@firebase/database-types" "0.9.12" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" +"@firebase/database-compat@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.3.4.tgz#4e57932f7a5ba761cd5ac946ab6b6ab3f660522c" + integrity sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/database" "0.14.4" + "@firebase/database-types" "0.10.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/database-types@0.9.12": - version "0.9.12" - resolved "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.9.12.tgz" - integrity sha512-FP4UYx1/bIOYSbTFmKajKKaEjXZKCQFUNZNIxaiCEZmsXb4vt0PJAmBufJf6LJLsaXNoywkcTyPYwjsotviyxg== +"@firebase/database-types@0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.10.4.tgz#47ba81113512dab637abace61cfb65f63d645ca7" + integrity sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ== dependencies: - "@firebase/app-types" "0.7.0" - "@firebase/util" "1.6.3" + "@firebase/app-types" "0.9.0" + "@firebase/util" "1.9.3" -"@firebase/database@0.13.4": - version "0.13.4" - resolved "https://registry.npmjs.org/@firebase/database/-/database-0.13.4.tgz" - integrity sha512-NW7bOoiaC4sJCj6DY/m9xHoFNa0CK32YPMCh6FiMweLCDQbOZM8Ql/Kn6yyuxCb7K7ypz9eSbRlCWQJsJRQjhg== +"@firebase/database@0.14.4": + version "0.14.4" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.14.4.tgz#9e7435a16a540ddfdeb5d99d45618e6ede179aa6" + integrity sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ== dependencies: - "@firebase/auth-interop-types" "0.1.6" - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" + "@firebase/auth-interop-types" "0.2.1" + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" faye-websocket "0.11.4" tslib "^2.1.0" -"@firebase/firestore-compat@0.1.23": - version "0.1.23" - resolved "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.1.23.tgz" - integrity sha512-QfcuyMAavp//fQnjSfCEpnbWi7spIdKaXys1kOLu7395fLr+U6ykmto1HUMCSz8Yus9cEr/03Ujdi2SUl2GUAA== +"@firebase/firestore-compat@0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.3.5.tgz#df159e66ea96096cd2c4b4ce8d72ff9685464444" + integrity sha512-gwBFGOqNIgF2TOJ2mKIS1lTQy6I9DytWsmIfvXGV76is53MaZUZXyUZd7oIC8h2Otq6gP3xtvPRQJTMcnQrbFg== dependencies: - "@firebase/component" "0.5.17" - "@firebase/firestore" "3.4.14" - "@firebase/firestore-types" "2.5.0" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/firestore" "3.9.0" + "@firebase/firestore-types" "2.5.1" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/firestore-types@2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.0.tgz" - integrity sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA== - -"@firebase/firestore@3.4.14": - version "3.4.14" - resolved "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.4.14.tgz" - integrity sha512-F4Pqd5OUBtJaAWWC39C0vrMLIdZtx7jsO7sARFHSiOZY/8bikfH9YovIRkpxk7OSs3HT/SgVdK0B1vISGNSnJA== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" - "@firebase/webchannel-wrapper" "0.6.2" - "@grpc/grpc-js" "^1.3.2" +"@firebase/firestore-types@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.5.1.tgz#464b2ee057956599ca34de50eae957c30fdbabb7" + integrity sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw== + +"@firebase/firestore@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-3.9.0.tgz#de31229a8b7fdf8da44c267234ea5796d3a0d045" + integrity sha512-At8HeTec3y7EfGjtYqvzON/8896igJgE34zjEndYxKPUKyhQ6xtcM+zhfa8C+lUW6W8qQB6lNzTNNXmF4NxdpQ== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" + "@firebase/webchannel-wrapper" "0.9.0" + "@grpc/grpc-js" "~1.7.0" "@grpc/proto-loader" "^0.6.13" node-fetch "2.6.7" tslib "^2.1.0" -"@firebase/functions-compat@0.2.4": - version "0.2.4" - resolved "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.2.4.tgz" - integrity sha512-Crfn6il1yXGuXkjSd8nKrqR4XxPvuP19g64bXpM6Ix67qOkQg676kyOuww0FF17xN0NSXHfG8Pyf+CUrx8wJ5g== +"@firebase/functions-compat@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.3.4.tgz#2b37321d893e816fec80435bb7cbca90f293bc0d" + integrity sha512-kxVxTGyLV1MBR3sp3mI+eQ6JBqz0G5bk310F8eX4HzDFk4xjk5xY0KdHktMH+edM2xs1BOg0vwvvsAHczIjB+w== dependencies: - "@firebase/component" "0.5.17" - "@firebase/functions" "0.8.4" - "@firebase/functions-types" "0.5.0" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/functions" "0.9.4" + "@firebase/functions-types" "0.6.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/functions-types@0.5.0": - version "0.5.0" - resolved "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.5.0.tgz" - integrity sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA== - -"@firebase/functions@0.8.4": - version "0.8.4" - resolved "https://registry.npmjs.org/@firebase/functions/-/functions-0.8.4.tgz" - integrity sha512-o1bB0xMyQKe+b246zGnjwHj4R6BH4mU2ZrSaa/3QvTpahUQ3hqYfkZPLOXCU7+vEFxHb3Hd4UUjkFhxoAcPqLA== - dependencies: - "@firebase/app-check-interop-types" "0.1.0" - "@firebase/auth-interop-types" "0.1.6" - "@firebase/component" "0.5.17" - "@firebase/messaging-interop-types" "0.1.0" - "@firebase/util" "1.6.3" +"@firebase/functions-types@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.6.0.tgz#ccd7000dc6fc668f5acb4e6a6a042a877a555ef2" + integrity sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw== + +"@firebase/functions@0.9.4": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.9.4.tgz#47232500be6847f1c7d3fa74eb36f621bd01a160" + integrity sha512-3H2qh6U+q+nepO5Hds+Ddl6J0pS+zisuBLqqQMRBHv9XpWfu0PnDHklNmE8rZ+ccTEXvBj6zjkPfdxt6NisvlQ== + dependencies: + "@firebase/app-check-interop-types" "0.2.0" + "@firebase/auth-interop-types" "0.2.1" + "@firebase/component" "0.6.4" + "@firebase/messaging-interop-types" "0.2.0" + "@firebase/util" "1.9.3" node-fetch "2.6.7" tslib "^2.1.0" -"@firebase/installations-compat@0.1.12": - version "0.1.12" - resolved "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.1.12.tgz" - integrity sha512-BIhFpWIn/GkuOa+jnXkp3SDJT2RLYJF6MWpinHIBKFJs7MfrgYZ3zQ1AlhobDEql+bkD1dK4dB5sNcET2T+EyA== +"@firebase/installations-compat@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@firebase/installations-compat/-/installations-compat-0.2.4.tgz#b5557c897b4cd3635a59887a8bf69c3731aaa952" + integrity sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q== dependencies: - "@firebase/component" "0.5.17" - "@firebase/installations" "0.5.12" - "@firebase/installations-types" "0.4.0" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/installations" "0.6.4" + "@firebase/installations-types" "0.5.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/installations-types@0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.4.0.tgz" - integrity sha512-nXxWKQDvBGctuvsizbUEJKfxXU9WAaDhon+j0jpjIfOJkvkj3YHqlLB/HeYjpUn85Pb22BjplpTnDn4Gm9pc3A== +"@firebase/installations-types@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.5.0.tgz#2adad64755cd33648519b573ec7ec30f21fb5354" + integrity sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg== -"@firebase/installations@0.5.12": - version "0.5.12" - resolved "https://registry.npmjs.org/@firebase/installations/-/installations-0.5.12.tgz" - integrity sha512-Zq43fCE0PB5tGJ3ojzx5RNQzKdej1188qgAk22rwjuhP7npaG/PlJqDG1/V0ZjTLRePZ1xGrfXSPlA17c/vtNw== +"@firebase/installations@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.6.4.tgz#20382e33e6062ac5eff4bede8e468ed4c367609e" + integrity sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA== dependencies: - "@firebase/component" "0.5.17" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/util" "1.9.3" idb "7.0.1" tslib "^2.1.0" -"@firebase/logger@0.3.3": - version "0.3.3" - resolved "https://registry.npmjs.org/@firebase/logger/-/logger-0.3.3.tgz" - integrity sha512-POTJl07jOKTOevLXrTvJD/VZ0M6PnJXflbAh5J9VGkmtXPXNG6MdZ9fmRgqYhXKTaDId6AQenQ262uwgpdtO0Q== +"@firebase/logger@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.0.tgz#15ecc03c452525f9d47318ad9491b81d1810f113" + integrity sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA== dependencies: tslib "^2.1.0" -"@firebase/messaging-compat@0.1.16": - version "0.1.16" - resolved "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.1.16.tgz" - integrity sha512-uG7rWcXJzU8vvlEBFpwG1ndw/GURrrmKcwsHopEWbsPGjMRaVWa7XrdKbvIR7IZohqPzcC/V9L8EeqF4Q4lz8w== +"@firebase/messaging-compat@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.2.4.tgz#323ca48deef77065b4fcda3cfd662c4337dffcfd" + integrity sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg== dependencies: - "@firebase/component" "0.5.17" - "@firebase/messaging" "0.9.16" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/messaging" "0.12.4" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/messaging-interop-types@0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz" - integrity sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ== - -"@firebase/messaging@0.9.16": - version "0.9.16" - resolved "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.9.16.tgz" - integrity sha512-Yl9gGrAvJF6C1gg3+Cr2HxlL6APsDEkrorkFafmSP1l+rg1epZKoOAcKJbSF02Vtb50wfb9FqGGy8tzodgETxg== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/installations" "0.5.12" - "@firebase/messaging-interop-types" "0.1.0" - "@firebase/util" "1.6.3" +"@firebase/messaging-interop-types@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz#6056f8904a696bf0f7fdcf5f2ca8f008e8f6b064" + integrity sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ== + +"@firebase/messaging@0.12.4": + version "0.12.4" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.12.4.tgz#ccb49df5ab97d5650c9cf5b8c77ddc34daafcfe0" + integrity sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/installations" "0.6.4" + "@firebase/messaging-interop-types" "0.2.0" + "@firebase/util" "1.9.3" idb "7.0.1" tslib "^2.1.0" -"@firebase/performance-compat@0.1.12": - version "0.1.12" - resolved "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.1.12.tgz" - integrity sha512-IBORzUeGY1MGdZnsix9Mu5z4+C3WHIwalu0usxvygL0EZKHztGG8bppYPGH/b5vvg8QyHs9U+Pn1Ot2jZhffQQ== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/performance" "0.5.12" - "@firebase/performance-types" "0.1.0" - "@firebase/util" "1.6.3" +"@firebase/performance-compat@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.2.4.tgz#95cbf32057b5d9f0c75d804bc50e6ed3ba486274" + integrity sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/performance" "0.6.4" + "@firebase/performance-types" "0.2.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/performance-types@0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.1.0.tgz" - integrity sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w== - -"@firebase/performance@0.5.12": - version "0.5.12" - resolved "https://registry.npmjs.org/@firebase/performance/-/performance-0.5.12.tgz" - integrity sha512-MPVTkOkGrm2SMQgI1FPNBm85y2pPqlPb6VDjIMCWkVpAr6G1IZzUT24yEMySRcIlK/Hh7/Qu1Nu5ASRzRuX6+Q== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/installations" "0.5.12" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" +"@firebase/performance-types@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.2.0.tgz#400685f7a3455970817136d9b48ce07a4b9562ff" + integrity sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA== + +"@firebase/performance@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.6.4.tgz#0ad766bfcfab4f386f4fe0bef43bbcf505015069" + integrity sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/installations" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/polyfill@0.3.36": - version "0.3.36" - resolved "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz" - integrity sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg== - dependencies: - core-js "3.6.5" - promise-polyfill "8.1.3" - whatwg-fetch "2.0.4" - -"@firebase/remote-config-compat@0.1.12": - version "0.1.12" - resolved "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.1.12.tgz" - integrity sha512-Yz7Gtb2rLa7ykXZX9DnSTId8CXd++jFFLW3foUImrYwJEtWgLJc7gwkRfd1M73IlKGNuQAY+DpUNF0n1dLbecA== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/logger" "0.3.3" - "@firebase/remote-config" "0.3.11" - "@firebase/remote-config-types" "0.2.0" - "@firebase/util" "1.6.3" +"@firebase/remote-config-compat@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.2.4.tgz#1f494c81a6c9560b1f9ca1b4fbd4bbbe47cf4776" + integrity sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/remote-config" "0.4.4" + "@firebase/remote-config-types" "0.3.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/remote-config-types@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz" - integrity sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw== - -"@firebase/remote-config@0.3.11": - version "0.3.11" - resolved "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.3.11.tgz" - integrity sha512-qA84dstrvVpO7rWT/sb2CLv1kjHVmz59SRFPKohJJYFBcPOGK4Pe4FWWhKAE9yg1Gnl0qYAGkahOwNawq3vE0g== - dependencies: - "@firebase/component" "0.5.17" - "@firebase/installations" "0.5.12" - "@firebase/logger" "0.3.3" - "@firebase/util" "1.6.3" +"@firebase/remote-config-types@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz#689900dcdb3e5c059e8499b29db393e4e51314b4" + integrity sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA== + +"@firebase/remote-config@0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.4.4.tgz#6a496117054de58744bc9f382d2a6d1e14060c65" + integrity sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/installations" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/storage-compat@0.1.17": - version "0.1.17" - resolved "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.1.17.tgz" - integrity sha512-nOYmnpI0gwoz5nROseMi9WbmHGf+xumfsOvdPyMZAjy0VqbDnpKIwmTUZQBdR+bLuB5oIkHQsvw9nbb1SH+PzQ== +"@firebase/storage-compat@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.3.2.tgz#51a97170fd652a516f729f82b97af369e5a2f8d7" + integrity sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw== dependencies: - "@firebase/component" "0.5.17" - "@firebase/storage" "0.9.9" - "@firebase/storage-types" "0.6.0" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/storage" "0.11.2" + "@firebase/storage-types" "0.8.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/storage-types@0.6.0": - version "0.6.0" - resolved "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.6.0.tgz" - integrity sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA== +"@firebase/storage-types@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.8.0.tgz#f1e40a5361d59240b6e84fac7fbbbb622bfaf707" + integrity sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg== -"@firebase/storage@0.9.9": - version "0.9.9" - resolved "https://registry.npmjs.org/@firebase/storage/-/storage-0.9.9.tgz" - integrity sha512-Zch7srLT2SIh9y2nCVv/4Kne0HULn7OPkmreY70BJTUJ+g5WLRjggBq6x9fV5ls9V38iqMWfn4prxzX8yIc08A== +"@firebase/storage@0.11.2": + version "0.11.2" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.11.2.tgz#c5e0316543fe1c4026b8e3910f85ad73f5b77571" + integrity sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA== dependencies: - "@firebase/component" "0.5.17" - "@firebase/util" "1.6.3" + "@firebase/component" "0.6.4" + "@firebase/util" "1.9.3" node-fetch "2.6.7" tslib "^2.1.0" -"@firebase/util@1.6.3": - version "1.6.3" - resolved "https://registry.npmjs.org/@firebase/util/-/util-1.6.3.tgz" - integrity sha512-FujteO6Zjv6v8A4HS+t7c+PjU0Kaxj+rOnka0BsI/twUaCC9t8EQPmXpWZdk7XfszfahJn2pqsflUWUhtUkRlg== +"@firebase/util@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.3.tgz#45458dd5cd02d90e55c656e84adf6f3decf4b7ed" + integrity sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA== dependencies: tslib "^2.1.0" -"@firebase/webchannel-wrapper@0.6.2": - version "0.6.2" - resolved "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.6.2.tgz" - integrity sha512-zThUKcqIU6utWzM93uEvhlh8qj8A5LMPFJPvk/ODb+8GSSif19xM2Lw1M2ijyBy8+6skSkQBbavPzOU5Oh/8tQ== +"@firebase/webchannel-wrapper@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.9.0.tgz#9340bce56560a8bdba1d25d6281d4bfc397450dc" + integrity sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg== "@formatjs/ecma402-abstract@1.11.8": version "1.11.8" @@ -1826,10 +1815,10 @@ dependencies: tslib "2.4.0" -"@grpc/grpc-js@^1.3.2": - version "1.6.8" - resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.8.tgz" - integrity sha512-Nt5tufF/O5Q310kP0cDzxznWMZW58GCTZhUUiAQ9B0K0ANKNQ4Lj/K9XK0vZg+UBKq5/7z7+8mXHHfrcwoeFJQ== +"@grpc/grpc-js@~1.7.0": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.7.3.tgz#f2ea79f65e31622d7f86d4b4c9ae38f13ccab99a" + integrity sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" @@ -6090,11 +6079,6 @@ core-js-pure@^3.20.2, core-js-pure@^3.8.1: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.1.tgz" integrity sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg== -core-js@3.6.5: - version "3.6.5" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - core-js@^3.19.2: version "3.24.1" resolved "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz" @@ -6497,6 +6481,11 @@ detective@^5.2.1: defined "^1.0.0" minimist "^1.2.6" +dialog-polyfill@^0.4.7: + version "0.4.10" + resolved "https://registry.yarnpkg.com/dialog-polyfill/-/dialog-polyfill-0.4.10.tgz#c4ea68a0deed4abb59a6a2a025c548b278cd532e" + integrity sha512-j5yGMkP8T00UFgyO+78OxiN5vC5dzRQF3BEio+LhNvDbyfxWBsi3sfPArDm54VloaJwy2hm3erEiDWqHRC8rzw== + didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" @@ -7332,38 +7321,45 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -firebase@^9.8.1: - version "9.9.2" - resolved "https://registry.npmjs.org/firebase/-/firebase-9.9.2.tgz" - integrity sha512-zhWUEyBQbwWhLEYhULwZ0A6eRuHP/EP2bpwASpHkI1QQgO1GVqkyCZEpp/feGSDve0COhv9oWC1wOuAzrQrV6g== - dependencies: - "@firebase/analytics" "0.8.0" - "@firebase/analytics-compat" "0.1.13" - "@firebase/app" "0.7.30" - "@firebase/app-check" "0.5.12" - "@firebase/app-check-compat" "0.2.12" - "@firebase/app-compat" "0.1.31" - "@firebase/app-types" "0.7.0" - "@firebase/auth" "0.20.5" - "@firebase/auth-compat" "0.2.18" - "@firebase/database" "0.13.4" - "@firebase/database-compat" "0.2.4" - "@firebase/firestore" "3.4.14" - "@firebase/firestore-compat" "0.1.23" - "@firebase/functions" "0.8.4" - "@firebase/functions-compat" "0.2.4" - "@firebase/installations" "0.5.12" - "@firebase/installations-compat" "0.1.12" - "@firebase/messaging" "0.9.16" - "@firebase/messaging-compat" "0.1.16" - "@firebase/performance" "0.5.12" - "@firebase/performance-compat" "0.1.12" - "@firebase/polyfill" "0.3.36" - "@firebase/remote-config" "0.3.11" - "@firebase/remote-config-compat" "0.1.12" - "@firebase/storage" "0.9.9" - "@firebase/storage-compat" "0.1.17" - "@firebase/util" "1.6.3" +firebase@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.18.0.tgz#c617c8194baa7683b6da24d05e613eadc6ab7e32" + integrity sha512-CTV5S3mTtn9zodeWkdeTqiQFyS7t+iskA50V9hVKPCQ4TPw4tnoyNgtNzWUmemFnYadzzsTnAaxsR7UaBJgiqw== + dependencies: + "@firebase/analytics" "0.9.4" + "@firebase/analytics-compat" "0.2.4" + "@firebase/app" "0.9.5" + "@firebase/app-check" "0.6.4" + "@firebase/app-check-compat" "0.3.4" + "@firebase/app-compat" "0.2.5" + "@firebase/app-types" "0.9.0" + "@firebase/auth" "0.21.5" + "@firebase/auth-compat" "0.3.5" + "@firebase/database" "0.14.4" + "@firebase/database-compat" "0.3.4" + "@firebase/firestore" "3.9.0" + "@firebase/firestore-compat" "0.3.5" + "@firebase/functions" "0.9.4" + "@firebase/functions-compat" "0.3.4" + "@firebase/installations" "0.6.4" + "@firebase/installations-compat" "0.2.4" + "@firebase/messaging" "0.12.4" + "@firebase/messaging-compat" "0.2.4" + "@firebase/performance" "0.6.4" + "@firebase/performance-compat" "0.2.4" + "@firebase/remote-config" "0.4.4" + "@firebase/remote-config-compat" "0.2.4" + "@firebase/storage" "0.11.2" + "@firebase/storage-compat" "0.3.2" + "@firebase/util" "1.9.3" + +firebaseui@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/firebaseui/-/firebaseui-6.0.2.tgz#14411920e17a7986e2ae969cb4890dfbf94fbfc5" + integrity sha512-Jwwn2I657loKrvedeCrwED9UibLFl8Cm0uH2ntDBSCpruWzG4HXlIWb35WsDdXMILRPQjJ1PwVwuRsrnsxcaXA== + dependencies: + dialog-polyfill "^0.4.7" + material-design-lite "^1.2.0" flat-cache@^3.0.4: version "3.0.4" @@ -7909,11 +7905,6 @@ ignore@^5.2.0: resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" - integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== - immer@^9.0.7: version "9.0.15" resolved "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz" @@ -8900,16 +8891,6 @@ jsonpointer@^5.0.0: array-includes "^3.1.5" object.assign "^4.1.2" -jszip@^3.6.0: - version "3.10.1" - resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" - integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - setimmediate "^1.0.5" - kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" @@ -8958,13 +8939,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz" @@ -9121,6 +9095,11 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +material-design-lite@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/material-design-lite/-/material-design-lite-1.3.0.tgz#d004ce3fee99a1eeb74a78b8a325134a5f1171d3" + integrity sha512-ao76b0bqSTKcEMt7Pui+J/S3eVF0b3GWfuKUwfe2lP5DKlLZOwBq37e0/bXEzxrw7/SuHAuYAdoCwY6mAYhrsg== + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" @@ -9591,11 +9570,6 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@~1.0.2: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - param-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" @@ -10322,11 +10296,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -promise-polyfill@8.1.3: - version "8.1.3" - resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz" - integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== - promise@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz" @@ -11121,7 +11090,7 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -readable-stream@^2.0.1, readable-stream@~2.3.6: +readable-stream@^2.0.1: version "2.3.7" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -11475,15 +11444,6 @@ select-hose@^2.0.0: resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selenium-webdriver@4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.1.2.tgz" - integrity sha512-e4Ap8vQvhipgBB8Ry9zBiKGkU6kHKyNnWiavGGLKkrdW81Zv7NVMtFOL/j3yX0G8QScM7XIXijKssNd4EUxSOw== - dependencies: - jszip "^3.6.0" - tmp "^0.2.1" - ws ">=7.4.6" - selfsigned@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz" @@ -11564,11 +11524,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" @@ -12129,13 +12084,6 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - tmpl@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" @@ -12637,11 +12585,6 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - whatwg-fetch@^3.6.2: version "3.6.2" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" @@ -12913,16 +12856,16 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@>=7.4.6, ws@^8.4.2: - version "8.8.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== - ws@^7.4.6: version "7.5.9" resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +ws@^8.4.2: + version "8.8.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" From 45e441b8bd38297ddf4ee1b64241286a39f579c5 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 22:58:53 +0900 Subject: [PATCH 04/14] add route guards for admin user --- src/App.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/App.js b/src/App.js index b9e70be..8cfc2ca 100644 --- a/src/App.js +++ b/src/App.js @@ -1,4 +1,4 @@ -import { useContext } from "react"; +import { useContext, useEffect } from "react"; import { Switch, Route, Redirect } from "react-router-dom"; import { Layout } from "antd"; import Navbar from "./components/NavBar/Navbar"; @@ -36,8 +36,8 @@ const App = () => { - {authCtx.isLoggedIn && } - {!authCtx.isLoggedIn && } + {authCtx.isAdmin && } + {!authCtx.isAdmin && } {/* maybe pass the appointment id so it can be fetched */} @@ -50,16 +50,20 @@ const App = () => { - + {authCtx.isAdmin && } + {!authCtx.isAdmin && } - + {authCtx.isAdmin && } + {!authCtx.isAdmin && } - + {authCtx.isAdmin && } + {!authCtx.isAdmin && } - + {authCtx.isAdmin && } + {!authCtx.isAdmin && } From c8ddacd35c4d8a811b7321062f56a5cb4fe84b44 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 22:59:14 +0900 Subject: [PATCH 05/14] log in users before making bookings --- src/components/BookingForm/BookingForm.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/BookingForm/BookingForm.js b/src/components/BookingForm/BookingForm.js index 35b2649..0ce5e4b 100644 --- a/src/components/BookingForm/BookingForm.js +++ b/src/components/BookingForm/BookingForm.js @@ -4,6 +4,8 @@ import moment from "moment"; import { Form, Button } from "react-bootstrap"; import { DatePicker } from "antd"; import TimeSelector from "../TimeSelector/TimeSelector"; +import { useContext } from "react"; +import AuthContext from "../../store/auth-context"; import "./BookingForm.css"; @@ -18,6 +20,7 @@ const schema = yup.object().shape({ }); const BookingForm = ({ onCancel, onConfirm, oldData, slots, onGetSlots, slotStatus, settings }) => { + const authCtx = useContext(AuthContext); function handleGetSlots(date) { onGetSlots(date); } @@ -34,7 +37,11 @@ const BookingForm = ({ onCancel, onConfirm, oldData, slots, onGetSlots, slotStat validationSchema={schema} onSubmit={(values, { resetForm }) => { //submitting data! - onConfirm(values); + if (!authCtx.isLoggedIn) { + authCtx.handleCustomerLogin(); + return; + } + onConfirm({ ...values, userId: authCtx.userId, googleAccountName: authCtx.user.displayName, email: authCtx.user.email }); resetForm(); }} initialValues={{ From b6c6b5fcb03613826964800933469787f78751b7 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 22:59:40 +0900 Subject: [PATCH 06/14] remove un used space --- src/components/NavBar/Navbar.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/NavBar/Navbar.js b/src/components/NavBar/Navbar.js index f6cdef0..2e2882f 100644 --- a/src/components/NavBar/Navbar.js +++ b/src/components/NavBar/Navbar.js @@ -10,7 +10,6 @@ import SideBar from "../SideBar/SideBar"; import "./NavBar.css"; const Navbar = () => { const [showSidebar, setShowSidebar] = useState(false); - const handleToggleSidebar = () => setShowSidebar((isShown) => !isShown); // const authCtx = useContext(AuthContext) From 39c6f48b26e99befa5bbe0a0b512c522d341ed75 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 22:59:56 +0900 Subject: [PATCH 07/14] render side based on admin status --- src/components/SideBar/SideBar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/SideBar/SideBar.js b/src/components/SideBar/SideBar.js index 6b34b7a..1b59bdb 100644 --- a/src/components/SideBar/SideBar.js +++ b/src/components/SideBar/SideBar.js @@ -38,7 +38,7 @@ const SideBar = ({ show, onToggle }) => { if (!item.protected) { items.push(listItem); } - if (item.protected && authCtx.isLoggedIn) { + if (item.protected && authCtx.isAdmin) { items.push(listItem); } return items; From 8862be549d6a64297e50ff31fb83590d058a939c Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 23:00:35 +0900 Subject: [PATCH 08/14] send bookings data to firebase --- src/pages/NewBooking.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/NewBooking.js b/src/pages/NewBooking.js index 8dc51f5..3c51ce9 100644 --- a/src/pages/NewBooking.js +++ b/src/pages/NewBooking.js @@ -27,7 +27,7 @@ const NewBooking = () => { } async function handleConfirm(bookingData) { - sendRequest(bookingData); + sendRequest({ ...bookingData }); } // useEffect(() => { From f4a535ab14d4e831337e8717791594ede27ccbd2 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 23:01:51 +0900 Subject: [PATCH 09/14] add google login --- src/store/auth-context.js | 58 +++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/src/store/auth-context.js b/src/store/auth-context.js index d5262fd..8548d7b 100644 --- a/src/store/auth-context.js +++ b/src/store/auth-context.js @@ -1,13 +1,26 @@ import React, { useState } from "react"; import { auth } from "../database/firebase-config"; +import { useHistory } from "react-router-dom"; // import { httpGetSettings } from "../hooks/request" // import useHttp from "../hooks/useHttp" -import { createUserWithEmailAndPassword, signInWithEmailAndPassword, onAuthStateChanged, signOut } from "firebase/auth"; +import { createUserWithEmailAndPassword, onAuthStateChanged, signOut, GoogleAuthProvider, signInWithPopup, signInWithEmailAndPassword } from "firebase/auth"; //describes how the context looks like + +const provider = new GoogleAuthProvider(); + +provider.setCustomParameters({ + login_hint: "user@example.com", +}); + +const ADMINS = ["Nwzxrf32Uee9i6hbTXSN2mWVzlC2", "lHxJifUfgHhJkECibwAudvf3MGp1", "lru8dL4JVWTycq0LHhHgyaWqX133"]; + const AuthContext = React.createContext({ name: "", email: "", isLoggedIn: false, + isAdmin: false, + userId: "", + user: null, onLogin: ({ email, password }) => {}, onLogout: ({ email, password }) => {}, onRegister: ({ email, password }) => {}, @@ -15,6 +28,7 @@ const AuthContext = React.createContext({ export const AuthContextProvider = (props) => { const [user, setUser] = useState(null); + const history = useHistory(); const handleLogout = async () => { try { @@ -33,6 +47,35 @@ export const AuthContextProvider = (props) => { } }; + const handleCustomerLogin = async () => { + signInWithPopup(auth, provider) + .then((result) => { + // This gives you a Google Access Token. You can use it to access the Google API. + const credential = GoogleAuthProvider.credentialFromResult(result); + const token = credential.accessToken; + // The signed-in user info. + const user = result.user; + //alert("user logged in" + JSON.stringify(user)); + setUser(user); + // IdP data available using getAdditionalUserInfo(result) + // ... + //TODO: handle customer user login + history.push("/new-booking"); + }) + .catch((error) => { + // Handle Errors here. + const errorCode = error.code; + const errorMessage = error.message; + // The email of the user's account used. + const email = error.customData.email; + // The AuthCredential type that was used. + const credential = GoogleAuthProvider.credentialFromError(error); + // ... + alert("error when logging in" + JSON.stringify(error)); + setUser(null); + }); + }; + const handleRegister = async ({ email, password }) => { try { const user = await createUserWithEmailAndPassword(auth, email, password); @@ -43,21 +86,20 @@ export const AuthContextProvider = (props) => { }; onAuthStateChanged(auth, (currentUser) => { - //TODO: admins should be put in firebase table not here - const ADMINS = ["Nwzxrf32Uee9i6hbTXSN2mWVzlC2", "lHxJifUfgHhJkECibwAudvf3MGp1", "lru8dL4JVWTycq0LHhHgyaWqX133"]; - if (currentUser && ADMINS.includes(currentUser.uid)) { - setUser(currentUser); - } else { - setUser(null); - } + console.log("user", currentUser); + setUser(currentUser); }); const contextValue = { name: user?.displayname, email: user?.email, + userId: user?.uid, + isAdmin: user && ADMINS.includes(user?.uid), isLoggedIn: user ? true : false, + user: user, onLogin: handleLogin, onLogout: handleLogout, onRegister: handleRegister, + handleCustomerLogin, }; return {props.children}; From b306ee36dd141075cba8c30060aa355d36677389 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 23:02:29 +0900 Subject: [PATCH 10/14] update version --- src/version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/version.json b/src/version.json index 6e5f5d9..5bf3c32 100644 --- a/src/version.json +++ b/src/version.json @@ -1,3 +1,3 @@ { - "version": "1.10.0" + "version": "1.11.0" } From 4301ed9507ce8bf633fc0ee8a2db9b0bc44ced9c Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 23:03:40 +0900 Subject: [PATCH 11/14] update env --- src/env.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/env.json b/src/env.json index bfe7257..59b11e4 100644 --- a/src/env.json +++ b/src/env.json @@ -1,5 +1,5 @@ { - "current-env": "development", + "current-env": "production", "production": { "apiKey": "AIzaSyDyl-tV8qgWpgTMISb3M9ybaVxNPoGKuGA", "authDomain": "appointments-9fa9d.firebaseapp.com", From aa6b3782859caae49a343b6223d6f6ad264b8ab5 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 23:09:38 +0900 Subject: [PATCH 12/14] remove un used code --- src/store/auth-context.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/store/auth-context.js b/src/store/auth-context.js index 8548d7b..2b75f4d 100644 --- a/src/store/auth-context.js +++ b/src/store/auth-context.js @@ -8,10 +8,6 @@ import { createUserWithEmailAndPassword, onAuthStateChanged, signOut, GoogleAuth const provider = new GoogleAuthProvider(); -provider.setCustomParameters({ - login_hint: "user@example.com", -}); - const ADMINS = ["Nwzxrf32Uee9i6hbTXSN2mWVzlC2", "lHxJifUfgHhJkECibwAudvf3MGp1", "lru8dL4JVWTycq0LHhHgyaWqX133"]; const AuthContext = React.createContext({ From 4e0b1cb44fd009c755e8b94e614ed934907f0532 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 23:09:48 +0900 Subject: [PATCH 13/14] remove private keys --- src/env.json | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/src/env.json b/src/env.json index 59b11e4..93d1eb8 100644 --- a/src/env.json +++ b/src/env.json @@ -1,28 +1,3 @@ { - "current-env": "production", - "production": { - "apiKey": "AIzaSyDyl-tV8qgWpgTMISb3M9ybaVxNPoGKuGA", - "authDomain": "appointments-9fa9d.firebaseapp.com", - "projectId": "appointments-9fa9d", - "storageBucket": "appointments-9fa9d.appspot.com", - "messagingSenderId": "514032231488", - "appId": "1:514032231488:web:a841adecd9dffad5aaaba5", - "measurementId": "G-N2D42P9687" - }, - "development": { - "apiKey": "AIzaSyBNipwPtKZOGsNA6ezsEv2f_LjQ0Kg7J0k", - "authDomain": "appointments-dev-ff26f.firebaseapp.com", - "projectId": "appointments-dev-ff26f", - "storageBucket": "appointments-dev-ff26f.appspot.com", - "messagingSenderId": "1051559849613", - "appId": "1:1051559849613:web:e8e80694637eedde697cc4" - }, - "test": { - "apiKey": "AIzaSyBNipwPtKZOGsNA6ezsEv2f_LjQ0Kg7J0k", - "authDomain": "appointments-dev-ff26f.firebaseapp.com", - "projectId": "appointments-dev-ff26f", - "storageBucket": "appointments-dev-ff26f.appspot.com", - "messagingSenderId": "1051559849613", - "appId": "1:1051559849613:web:e8e80694637eedde697cc4" - } + "current-env": "production" } From b9b31729ab8abc6dfa4d1f51e6c9a4aff8ee4e02 Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 18 Mar 2023 23:09:57 +0900 Subject: [PATCH 14/14] save user photo url --- src/components/BookingForm/BookingForm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/BookingForm/BookingForm.js b/src/components/BookingForm/BookingForm.js index 0ce5e4b..c845318 100644 --- a/src/components/BookingForm/BookingForm.js +++ b/src/components/BookingForm/BookingForm.js @@ -41,7 +41,7 @@ const BookingForm = ({ onCancel, onConfirm, oldData, slots, onGetSlots, slotStat authCtx.handleCustomerLogin(); return; } - onConfirm({ ...values, userId: authCtx.userId, googleAccountName: authCtx.user.displayName, email: authCtx.user.email }); + onConfirm({ ...values, userId: authCtx.userId, googleAccountName: authCtx.user.displayName, email: authCtx.user.email, photoURL: authCtx.user.photoURL }); resetForm(); }} initialValues={{