From ddec6b496c1173e4f0fecfe0b8fac67e83fb4b8a Mon Sep 17 00:00:00 2001 From: canisterism Date: Sat, 22 Jul 2023 20:10:23 +0900 Subject: [PATCH 1/9] yarn add algolia --- frontend/package.json | 2 + frontend/yarn.lock | 265 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 258 insertions(+), 9 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 1377635..9e68623 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,6 +15,7 @@ "@heroicons/react": "^2.0.18", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.4", + "algoliasearch": "^4.19.1", "cookie": "^0.5.0", "dotenv-cli": "^6.0.0", "firebase": "^10.1.0", @@ -27,6 +28,7 @@ "next-firebase-auth": "^1.0.0-beta.0", "react": "18.0.0", "react-dom": "18.0.0", + "react-instantsearch-hooks-web": "^6.47.1", "reflect-metadata": "^0.1.13" }, "devDependencies": { diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 66f20b6..9da89ee 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2,6 +2,128 @@ # yarn lockfile v1 +"@algolia/cache-browser-local-storage@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz#d29f42775ed4d117182897ac164519c593faf399" + integrity sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw== + dependencies: + "@algolia/cache-common" "4.19.1" + +"@algolia/cache-common@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.19.1.tgz#faa5eeacaffd6023c2cf26e9866bdb06193f9b26" + integrity sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg== + +"@algolia/cache-in-memory@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz#afe4f0f21149800358379871089e0141fb72415b" + integrity sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w== + dependencies: + "@algolia/cache-common" "4.19.1" + +"@algolia/client-account@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.19.1.tgz#1fa65881baab79ad35af6bcf44646a13b8d5edc9" + integrity sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA== + dependencies: + "@algolia/client-common" "4.19.1" + "@algolia/client-search" "4.19.1" + "@algolia/transporter" "4.19.1" + +"@algolia/client-analytics@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.19.1.tgz#e6ed79acd4de5a0284c9696bf4e1c25278ba34db" + integrity sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg== + dependencies: + "@algolia/client-common" "4.19.1" + "@algolia/client-search" "4.19.1" + "@algolia/requester-common" "4.19.1" + "@algolia/transporter" "4.19.1" + +"@algolia/client-common@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.19.1.tgz#40a8387316fa61d62ad1091beb3a8e227f008e75" + integrity sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA== + dependencies: + "@algolia/requester-common" "4.19.1" + "@algolia/transporter" "4.19.1" + +"@algolia/client-personalization@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.19.1.tgz#fe362e0684dc74c3504c3641c5a7488c6ae02e07" + integrity sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw== + dependencies: + "@algolia/client-common" "4.19.1" + "@algolia/requester-common" "4.19.1" + "@algolia/transporter" "4.19.1" + +"@algolia/client-search@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.19.1.tgz#5e54601aa5f5cea790cec3f2cde4af9d6403871e" + integrity sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw== + dependencies: + "@algolia/client-common" "4.19.1" + "@algolia/requester-common" "4.19.1" + "@algolia/transporter" "4.19.1" + +"@algolia/events@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" + integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== + +"@algolia/logger-common@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.19.1.tgz#0e46a11510f3e94e1afc0ac780ae52e9597be78f" + integrity sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw== + +"@algolia/logger-console@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.19.1.tgz#656a6f4ebb5de39af6ef7095c398d9ab3cceb87d" + integrity sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg== + dependencies: + "@algolia/logger-common" "4.19.1" + +"@algolia/requester-browser-xhr@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz#7341ea2f980b8980a2976110142026721e452187" + integrity sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg== + dependencies: + "@algolia/requester-common" "4.19.1" + +"@algolia/requester-common@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.19.1.tgz#f3396c77631b9d36e8d4d6f819a2c27f9ddbf7a1" + integrity sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ== + +"@algolia/requester-node-http@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz#ea210de9642628b3bdda1dd7fcd1fcb686da442e" + integrity sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA== + dependencies: + "@algolia/requester-common" "4.19.1" + +"@algolia/transporter@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.19.1.tgz#b5787299740c4bec9ba05502d98c14b5999860c8" + integrity sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ== + dependencies: + "@algolia/cache-common" "4.19.1" + "@algolia/logger-common" "4.19.1" + "@algolia/requester-common" "4.19.1" + +"@algolia/ui-components-highlight-vdom@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@algolia/ui-components-highlight-vdom/-/ui-components-highlight-vdom-1.2.1.tgz#c430c9f090ef8c68477ef4b685324ed231ce0c13" + integrity sha512-IlYgIaCUEkz9ezNbwugwKv991oOHhveyq6nzL0F1jDzg1p3q5Yj/vO4KpNG910r2dwGCG3nEm5GtChcLnarhFA== + dependencies: + "@algolia/ui-components-shared" "1.2.1" + "@babel/runtime" "^7.0.0" + +"@algolia/ui-components-shared@1.2.1", "@algolia/ui-components-shared@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@algolia/ui-components-shared/-/ui-components-shared-1.2.1.tgz#62e3a04fc11623f149312942cd764d4528dd994c" + integrity sha512-a7mYHf/GVQfhAx/HRiMveKkFvHspQv/REdG+C/FIOosiSmNZxX7QebDwJkrGSmDWdXO12D0Qv1xn3AytFcEDlQ== + "@ampproject/remapping@^2.1.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" @@ -510,6 +632,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" + integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/runtime@^7.10.2", "@babel/runtime@^7.16.3": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" @@ -517,13 +646,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== - dependencies: - regenerator-runtime "^0.13.11" - "@babel/template@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" @@ -2068,6 +2190,11 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.1.tgz#b29aa1f91a59f35e29ff8f7cb24faf1a3a750554" integrity sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g== +"@types/dom-speech-recognition@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@types/dom-speech-recognition/-/dom-speech-recognition-0.0.1.tgz#e326761a04b4a49c0eec2ac7948afc1c6aa12baa" + integrity sha512-udCxb8DvjcDKfk1WTBzDsxFbLgYxmQGKrE/ricoMqHRNjSlSUCcamVTA5lIQqzY10mY5qCY0QDwBfFEwhfoDPw== + "@types/express-serve-static-core@^4.17.33": version "4.17.35" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" @@ -2096,6 +2223,16 @@ "@types/minimatch" "^5.1.2" "@types/node" "*" +"@types/google.maps@^3.45.3": + version "3.53.5" + resolved "https://registry.yarnpkg.com/@types/google.maps/-/google.maps-3.53.5.tgz#0f3010ab4eabe46721f3604462196975b640aab9" + integrity sha512-HoRq4Te8J6krH7hj+TfdYepqegoKZCj3kkaK5gf+ySFSHLvyqYkDvkrtbcVJXQ6QBphQ0h1TF7p4J6sOh4r/zg== + +"@types/hogan.js@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/hogan.js/-/hogan.js-3.0.1.tgz#64c54407b30da359763e14877f5702b8ae85d61c" + integrity sha512-D03i/2OY7kGyMq9wdQ7oD8roE49z/ZCZThe/nbahtvuqCNZY9T2MfedOWyeBdbEpY2W8Gnh/dyJLdFtUCOkYbg== + "@types/http-errors@*": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" @@ -2181,7 +2318,7 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== -"@types/qs@*": +"@types/qs@*", "@types/qs@^6.5.3": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== @@ -2357,6 +2494,11 @@ dependencies: tslib "^2.3.0" +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -2423,6 +2565,33 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +algoliasearch-helper@3.13.5: + version "3.13.5" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.13.5.tgz#0e20f6af3b2cb918e0b8bcb6f7f233bdbb53be1d" + integrity sha512-UsiDw8/RN3S/46EEJ6s5fX/vCNPlMNPQrB0TL/105Umyc+UdgbErCTaSf46pcVDIctAFN+9HF7txEg1eMHUvww== + dependencies: + "@algolia/events" "^4.0.1" + +algoliasearch@^4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.19.1.tgz#18111fb422eaf841737adb92d5ab12133d244218" + integrity sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g== + dependencies: + "@algolia/cache-browser-local-storage" "4.19.1" + "@algolia/cache-common" "4.19.1" + "@algolia/cache-in-memory" "4.19.1" + "@algolia/client-account" "4.19.1" + "@algolia/client-analytics" "4.19.1" + "@algolia/client-common" "4.19.1" + "@algolia/client-personalization" "4.19.1" + "@algolia/client-search" "4.19.1" + "@algolia/logger-common" "4.19.1" + "@algolia/logger-console" "4.19.1" + "@algolia/requester-browser-xhr" "4.19.1" + "@algolia/requester-common" "4.19.1" + "@algolia/requester-node-http" "4.19.1" + "@algolia/transporter" "4.19.1" + ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -4166,6 +4335,14 @@ hey-listen@^1.0.8: resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== +hogan.js@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" + integrity sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg== + dependencies: + mkdirp "0.3.0" + nopt "1.0.10" + hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" @@ -4173,6 +4350,11 @@ hoist-non-react-statics@^3.3.2: dependencies: react-is "^16.7.0" +htm@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/htm/-/htm-3.1.1.tgz#49266582be0dc66ed2235d5ea892307cc0c24b78" + integrity sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ== + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" @@ -4284,6 +4466,25 @@ inquirer@^8.0.0: through "^2.3.6" wrap-ansi "^7.0.0" +instantsearch.js@4.56.7: + version "4.56.7" + resolved "https://registry.yarnpkg.com/instantsearch.js/-/instantsearch.js-4.56.7.tgz#3eb4f2cbcf48c89805b835d91ccd840b2b50c84c" + integrity sha512-3zDC7qmRKz3w6UEsO95maeuJ6rVL7AyTJIDZ3ET9nYYGUuSk5zJozrBR9ag/aazLW2oXyLrrdwhF0qlmuCRDVA== + dependencies: + "@algolia/events" "^4.0.1" + "@algolia/ui-components-highlight-vdom" "^1.2.1" + "@algolia/ui-components-shared" "^1.2.1" + "@types/dom-speech-recognition" "^0.0.1" + "@types/google.maps" "^3.45.3" + "@types/hogan.js" "^3.0.0" + "@types/qs" "^6.5.3" + algoliasearch-helper "3.13.5" + hogan.js "^3.0.2" + htm "^3.0.0" + preact "^10.10.0" + qs "^6.5.1 < 6.10" + search-insights "^2.6.0" + internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -4974,6 +5175,11 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +mkdirp@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + integrity sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew== + mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -5106,6 +5312,13 @@ node-releases@^2.0.6: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== +nopt@1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -5509,6 +5722,11 @@ postcss@^8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" +preact@^10.10.0: + version "10.16.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.16.0.tgz#68a06d70b191b8a313ea722d61e09c6b2a79a37e" + integrity sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -5627,6 +5845,11 @@ pvutils@^1.1.3: resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== +"qs@^6.5.1 < 6.10": + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -5645,6 +5868,25 @@ react-dom@18.0.0: loose-envify "^1.1.0" scheduler "^0.21.0" +react-instantsearch-hooks-web@^6.47.1: + version "6.47.1" + resolved "https://registry.yarnpkg.com/react-instantsearch-hooks-web/-/react-instantsearch-hooks-web-6.47.1.tgz#641af756549bd1683c2df23717325062ac2f5fde" + integrity sha512-8fme1QVc+k2/I6r+iSkPb/WDQgIrdRGPwlcMaD7lqaSndFrOpmGL2tl6RAC56DXMZ6CzZbM6myJyPDmeRM7VRw== + dependencies: + "@babel/runtime" "^7.1.2" + instantsearch.js "4.56.7" + react-instantsearch-hooks "6.47.1" + +react-instantsearch-hooks@6.47.1: + version "6.47.1" + resolved "https://registry.yarnpkg.com/react-instantsearch-hooks/-/react-instantsearch-hooks-6.47.1.tgz#03f2f71a52a8f5346687daea59aa61e4bfef2ac4" + integrity sha512-6tJiEqlTj5zWc5WpyvSZC+hrN27j8f12s+z2QV4Le8CovFliPNsJD+H1wpuNHOH4lH0zG/28eW8qgBQVuOzhgw== + dependencies: + "@babel/runtime" "^7.1.2" + algoliasearch-helper "3.13.5" + instantsearch.js "4.56.7" + use-sync-external-store "^1.0.0" + react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -5878,6 +6120,11 @@ scuid@^1.1.0: resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== +search-insights@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/search-insights/-/search-insights-2.7.0.tgz#d8b7ce839cae7b905e62b156f4eefe122e560e5a" + integrity sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg== + semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -6401,7 +6648,7 @@ urlpattern-polyfill@^8.0.0: resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== -use-sync-external-store@1.2.0: +use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== From e7c9f489c2a1df88cf43fa1052067b27acd20c5c Mon Sep 17 00:00:00 2001 From: canisterism Date: Sat, 22 Jul 2023 20:11:47 +0900 Subject: [PATCH 2/9] =?UTF-8?q?AlgoliaProvider=E3=82=92=E5=AE=9A=E7=BE=A9?= =?UTF-8?q?=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/context/algoliaContext.tsx | 18 ++++++++++++++++++ frontend/pages/_app.tsx | 9 ++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 frontend/context/algoliaContext.tsx diff --git a/frontend/context/algoliaContext.tsx b/frontend/context/algoliaContext.tsx new file mode 100644 index 0000000..be06849 --- /dev/null +++ b/frontend/context/algoliaContext.tsx @@ -0,0 +1,18 @@ +import algoliasearch from "algoliasearch/lite"; +import { InstantSearch } from "react-instantsearch-hooks-web"; + +const searchClient = algoliasearch( + "ARQKR6LI32", + "0a0fcaec0b67c57e920f515c98da855c" +); + +const indexName = + process.env.NODE_ENV == "development" + ? "development_games" + : "production_games"; + +export const AlgoliaContext = ({ children }: { children: React.ReactNode }) => ( + + {children} + +); diff --git a/frontend/pages/_app.tsx b/frontend/pages/_app.tsx index df0fc1c..739c32c 100644 --- a/frontend/pages/_app.tsx +++ b/frontend/pages/_app.tsx @@ -1,5 +1,6 @@ import { SideBarLayout } from "@/components/layouts"; import { initAuth } from "@/config/firebase"; +import { AlgoliaContext } from "@/context/algoliaContext"; import { ApolloProvider } from "@/context/apolloContext"; import { MeProvider } from "@/context/meContext"; import { withUser } from "next-firebase-auth"; @@ -13,9 +14,11 @@ function MyApp({ Component, pageProps }: AppProps) { return ( - - - + + + + + ); From 574763b35e9f4a0c869db7b8bf73571c8c28b159 Mon Sep 17 00:00:00 2001 From: canisterism Date: Sat, 22 Jul 2023 20:12:10 +0900 Subject: [PATCH 3/9] =?UTF-8?q?Algolia=E3=81=A7=E6=A4=9C=E7=B4=A2=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/components/GameList.tsx | 102 +++++++++--------- frontend/components/ProfileMenuIcon.tsx | 1 - frontend/components/layouts/SideBarLayout.tsx | 8 +- frontend/pages/index.tsx | 4 +- 4 files changed, 55 insertions(+), 60 deletions(-) diff --git a/frontend/components/GameList.tsx b/frontend/components/GameList.tsx index 5059a14..deb3938 100644 --- a/frontend/components/GameList.tsx +++ b/frontend/components/GameList.tsx @@ -1,69 +1,67 @@ -import { GamesQuery } from "@/graphql/generated/graphql"; +"use client"; + import { classNames } from "@/lib/classNames"; import { StarIcon } from "@heroicons/react/20/solid"; + import Image from "next/image"; import Link from "next/link"; +import { useHits } from "react-instantsearch-hooks-web"; -type Props = { - games: GamesQuery["games"]["nodes"]; -}; - -export default function GameList({ games }: Props) { - if (!games) { - return
loading...
; - } +export function GameList() { + const { hits } = useHits(); return (
-

Products

+

games

- {games.map( - (game) => - game && ( -
-
- {`${game.title}`} -
-
-

- - - - -

-
-

- {game.ratingAverage} out of 5 stars -

- -

- {game.reviewsCount || 0} reviews -

-

- {game.clipsCount || 0} reviews -

-
-
-
- ) - )} + {hits.map((game) => ( + + ))}
); } +function Hit({ hit: game }: { hit: any }) { + return ( +
+
+ {`${game.title}`} +
+
+

+ + + + +

+
+

{game.ratingAverage} out of 5 stars

+ +

+ {game.reviewsCount || 0} reviews +

+

+ {game.clipsCount || 0} reviews +

+
+
+
+ ); +} function RatingStars({ ratingAverage }: { ratingAverage: number }) { return (
diff --git a/frontend/components/ProfileMenuIcon.tsx b/frontend/components/ProfileMenuIcon.tsx index 608124d..2218166 100644 --- a/frontend/components/ProfileMenuIcon.tsx +++ b/frontend/components/ProfileMenuIcon.tsx @@ -17,7 +17,6 @@ function ProfileMenuIcon() { : { name: "Sign in", href: "/signin" }, ]; - console.log({ me, loading }); return loading ? null : ( diff --git a/frontend/components/layouts/SideBarLayout.tsx b/frontend/components/layouts/SideBarLayout.tsx index 07ba522..a98b9e0 100644 --- a/frontend/components/layouts/SideBarLayout.tsx +++ b/frontend/components/layouts/SideBarLayout.tsx @@ -10,6 +10,7 @@ import { } from "@heroicons/react/24/outline"; import Link from "next/link"; import React, { Fragment, useState } from "react"; +import { SearchBox } from "react-instantsearch-hooks-web"; const navigation = [ { name: "ホーム", href: "#", icon: HomeIcon, current: true }, @@ -58,11 +59,8 @@ const SideBarLayout: React.FC = ({ children }) => { {/* Search bar */}
- { - console.log(query); - }} - /> + +
{/* Notification button */} diff --git a/frontend/pages/index.tsx b/frontend/pages/index.tsx index d020deb..e1e9276 100644 --- a/frontend/pages/index.tsx +++ b/frontend/pages/index.tsx @@ -1,4 +1,4 @@ -import GameList from "@/components/GameList"; +import { GameList } from "@/components/GameList"; import { createApolloClient } from "@/graphql/client"; import { NextPage } from "next"; import { withUserTokenSSR } from "next-firebase-auth"; @@ -17,7 +17,7 @@ const Home: NextPage<{ games: Games }> = ({ games }) => {
- +
); From 2f6b358446e0555d133e9fffba2beb0d228c089a Mon Sep 17 00:00:00 2001 From: canisterism Date: Sat, 22 Jul 2023 20:12:20 +0900 Subject: [PATCH 4/9] =?UTF-8?q?amazon=E3=81=AE=E7=94=BB=E5=83=8F=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/next.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/next.config.js b/frontend/next.config.js index 689e966..0a5a078 100644 --- a/frontend/next.config.js +++ b/frontend/next.config.js @@ -7,6 +7,7 @@ const nextConfig = { "placeimg.com", "images.unsplash.com", "lh4.googleusercontent.com", + "m.media-amazon.com", ], }, reactStrictMode: true, From fced54dc88f6546324f93423367583954f7d9352 Mon Sep 17 00:00:00 2001 From: canisterism Date: Sat, 22 Jul 2023 20:12:39 +0900 Subject: [PATCH 5/9] =?UTF-8?q?algolia=E3=81=AFGlobalD=E3=81=A7=E6=8C=81?= =?UTF-8?q?=E3=81=A3=E3=81=A6=E3=81=AA=E3=81=84=E3=82=B1=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=81=8C=E3=81=82=E3=82=8B=E3=81=AE=E3=81=A7=E3=82=B1=E3=82=A2?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/graphql/types/query_type.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/graphql/types/query_type.rb b/backend/app/graphql/types/query_type.rb index cef1995..8ed6aca 100644 --- a/backend/app/graphql/types/query_type.rb +++ b/backend/app/graphql/types/query_type.rb @@ -17,7 +17,7 @@ def me end def game(id:) - GlobalID::Locator.locate(id) + GlobalID::Locator.locate(id) || Game.find(id) end From c011e2bc886ad2120936f5ab84034a693bda66ff Mon Sep 17 00:00:00 2001 From: canisterism Date: Sat, 22 Jul 2023 20:34:48 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=83=90=E3=83=BC?= =?UTF-8?q?=E3=81=AE=E3=82=A6=E3=82=A3=E3=82=B8=E3=82=A7=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=82=92tailwind-ui=E3=81=AE=E3=82=84=E3=81=A4=E3=81=AB?= =?UTF-8?q?=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/components/SearchBox.tsx | 28 +++++++++++++++++++ frontend/components/layouts/SideBarLayout.tsx | 26 +---------------- 2 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 frontend/components/SearchBox.tsx diff --git a/frontend/components/SearchBox.tsx b/frontend/components/SearchBox.tsx new file mode 100644 index 0000000..3e03bd7 --- /dev/null +++ b/frontend/components/SearchBox.tsx @@ -0,0 +1,28 @@ +"use client"; +import { MagnifyingGlassIcon } from "@heroicons/react/20/solid"; +import { useSearchBox } from "react-instantsearch-hooks"; + +export default function SearchBox() { + const { query, refine } = useSearchBox(); + return ( +
+ +
+
+ refine(event.target.value)} + /> +
+ ); +} diff --git a/frontend/components/layouts/SideBarLayout.tsx b/frontend/components/layouts/SideBarLayout.tsx index a98b9e0..37c9d14 100644 --- a/frontend/components/layouts/SideBarLayout.tsx +++ b/frontend/components/layouts/SideBarLayout.tsx @@ -1,4 +1,5 @@ import ProfileMenuIcon from "@/components/ProfileMenuIcon"; +import SearchBox from "@/components/SearchBox"; import { Dialog, Transition } from "@headlessui/react"; import { FireIcon, MagnifyingGlassIcon } from "@heroicons/react/20/solid"; import { @@ -10,7 +11,6 @@ import { } from "@heroicons/react/24/outline"; import Link from "next/link"; import React, { Fragment, useState } from "react"; -import { SearchBox } from "react-instantsearch-hooks-web"; const navigation = [ { name: "ホーム", href: "#", icon: HomeIcon, current: true }, @@ -105,30 +105,6 @@ function LogoLink() { ); } -function SearchBar(props: { onSearch: (query: string) => void }) { - return ( -
- -
-
- props.onSearch(e.target.value)} - /> -
- ); -} - function NotificationButton() { return (
@@ -69,7 +69,9 @@ function RatingStars({ ratingAverage }: { ratingAverage: number }) { rating ? "text-yellow-400" : "text-gray-100", + Math.floor(ratingAverage) > rating + ? "text-yellow-400" + : "text-gray-100", "h-5 w-5 flex-shrink-0" )} aria-hidden="true" From f3d0bfb48df29a008b42af56f19b2e9c8e058051 Mon Sep 17 00:00:00 2001 From: canisterism Date: Sat, 22 Jul 2023 20:46:05 +0900 Subject: [PATCH 9/9] =?UTF-8?q?Regexp=E3=81=A7=E6=9B=B8=E3=81=8B=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=81=A8=E3=83=80=E3=83=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/config/initializers/cors.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/config/initializers/cors.rb b/backend/config/initializers/cors.rb index 3082d8f..252d1f4 100644 --- a/backend/config/initializers/cors.rb +++ b/backend/config/initializers/cors.rb @@ -7,7 +7,8 @@ Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do - origins "http://localhost:3001", "https://clip-games.com", "https://clip-games*.vercel.app" + origins "http://localhost:3001", "https://clip-games.com", + /\Ahttps:\/\/clip-games.+\.vercel\.app\z/ resource "*", headers: :any,