From 2e3def034e90970c2656fc0d07e39f2e4b05ebae Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Sat, 11 Sep 2021 13:08:39 +0700 Subject: [PATCH 01/36] config: yarn lock changed --- yarn.lock | 1007 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 987 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index 96275a4eb..7d98b108e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -428,6 +428,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/runtime-corejs3@^7.10.2": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz#403139af262b9a6e8f9ba04a6fdcebf8de692bf1" + integrity sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg== + dependencies: + core-js-pure "^3.16.0" + regenerator-runtime "^0.13.4" + "@babel/runtime@7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz" @@ -449,6 +457,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" + integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.14.5": version "7.14.5" resolved "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz" @@ -529,6 +544,21 @@ ts-node "^9" tslib "^2" +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@fullhuman/postcss-purgecss@^4.0.3": version "4.0.3" resolved "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.0.3.tgz" @@ -926,6 +956,20 @@ resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz" integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug== +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "@iarna/toml@^2.2.5": version "2.2.5" resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz" @@ -948,6 +992,13 @@ resolved "https://registry.npmjs.org/@next/env/-/env-11.0.1.tgz" integrity sha512-yZfKh2U6R9tEYyNUrs2V3SBvCMufkJ07xMH5uWy8wqcl5gAXoEw6A/1LDqwX3j7pUutF9d1ZxpdGDA3Uag+aQQ== +"@next/eslint-plugin-next@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-11.1.2.tgz#f26cf90bcb6cd2e4645e2ba253bbc9aaaa43a170" + integrity sha512-cN+ojHRsufr9Yz0rtvjv8WI5En0RPZRJnt0y16Ha7DD+0n473evz8i1ETEJHmOLeR7iPJR0zxRrxeTN/bJMOjg== + dependencies: + glob "7.1.7" + "@next/polyfill-module@11.0.1": version "11.0.1" resolved "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.1.tgz" @@ -1046,6 +1097,11 @@ "@react-spring/shared" "~9.2.0" "@react-spring/types" "~9.2.0" +"@rushstack/eslint-patch@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz#023d72a5c4531b4ce204528971700a78a85a0c50" + integrity sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA== + "@samverschueren/stream-to-observable@^0.3.0": version "0.3.1" resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz" @@ -1107,6 +1163,11 @@ resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz" integrity sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + "@types/jsonwebtoken@^8.5.0": version "8.5.5" resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.5.tgz" @@ -1198,6 +1259,50 @@ dependencies: "@types/node" "*" +"@typescript-eslint/parser@^4.20.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.0.tgz#87b7cd16b24b9170c77595d8b1363f8047121e05" + integrity sha512-oWbzvPh5amMuTmKaf1wp0ySxPt2ZXHnFQBN2Szu1O//7LmOvgaKTCIDNLK2NvzpmVd5A2M/1j/rujBqO37hj3w== + dependencies: + "@typescript-eslint/scope-manager" "4.31.0" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/typescript-estree" "4.31.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz#9be33aed4e9901db753803ba233b70d79a87fc3e" + integrity sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg== + dependencies: + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" + +"@typescript-eslint/types@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.0.tgz#9a7c86fcc1620189567dc4e46cad7efa07ee8dce" + integrity sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ== + +"@typescript-eslint/typescript-estree@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz#4da4cb6274a7ef3b21d53f9e7147cc76f278a078" + integrity sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg== + dependencies: + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz#4e87b7761cb4e0e627dc2047021aa693fc76ea2b" + integrity sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w== + dependencies: + "@typescript-eslint/types" "4.31.0" + eslint-visitor-keys "^2.0.0" + "@vercel/fetch-cached-dns@^2.0.2": version "2.0.2" resolved "https://registry.npmjs.org/@vercel/fetch-cached-dns/-/fetch-cached-dns-2.0.2.tgz" @@ -1243,6 +1348,11 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-node@^1.6.1: version "1.8.2" resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz" @@ -1262,9 +1372,9 @@ acorn-walk@^8.0.0: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz" integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== -acorn@^7.0.0: +acorn@^7.0.0, acorn@^7.4.0: version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4: @@ -1294,6 +1404,26 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + anser@1.4.9: version "1.4.9" resolved "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz" @@ -1373,11 +1503,26 @@ arg@^5.0.0: resolved "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz" integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + array-includes-with-glob@^3.0.6: version "3.1.0" resolved "https://registry.npmjs.org/array-includes-with-glob/-/array-includes-with-glob-3.1.0.tgz" @@ -1386,11 +1531,31 @@ array-includes-with-glob@^3.0.6: "@babel/runtime" "^7.14.0" matcher "^4.0.0" +array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array.prototype.flat@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + array.prototype.flatmap@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz" @@ -1434,6 +1599,11 @@ assert@^1.1.1: object-assign "^4.1.1" util "0.10.3" +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + ast-types@0.13.2: version "0.13.2" resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz" @@ -1498,6 +1668,16 @@ available-typed-arrays@^1.0.4: resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== +axe-core@^4.0.2: + version "4.3.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.3.tgz#b55cd8e8ddf659fe89b064680e1c6a4dceab0325" + integrity sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" @@ -2096,6 +2276,11 @@ cookie@^0.4.1: resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +core-js-pure@^3.16.0: + version "3.17.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.17.3.tgz#98ea3587188ab7ef4695db6518eeb71aec42604a" + integrity sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ== + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" @@ -2169,7 +2354,7 @@ cross-fetch@3.1.4, cross-fetch@^3.0.4, cross-fetch@^3.0.6: dependencies: node-fetch "2.6.1" -cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2261,6 +2446,11 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== +damerau-levenshtein@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" + integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== + data-uri-to-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" @@ -2281,7 +2471,7 @@ debounce@^1.2.0: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@2: +debug@2, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2302,13 +2492,20 @@ debug@4, debug@^4.1.0, debug@^4.3.1: dependencies: ms "2.1.2" -debug@^3.1.0: +debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" +debug@^4.0.1, debug@^4.1.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2331,6 +2528,11 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + deepmerge@4.2.2, deepmerge@^4.0.0, deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" @@ -2426,6 +2628,20 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + domain-browser@4.19.0: version "4.19.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.19.0.tgz#1093e17c0a17dbd521182fe90d49ac1370054af1" @@ -2499,6 +2715,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -2518,7 +2739,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enquirer@^2.3.6: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -2554,6 +2775,30 @@ es-abstract@^1.18.0-next.1: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" +es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456" + integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-string "^1.0.7" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + es-abstract@^1.18.5: version "1.18.5" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" @@ -2606,6 +2851,224 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +eslint-config-next@^11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-11.1.2.tgz#73c918f2fa6120d5f65080bf3fcf6b154905707e" + integrity sha512-dFutecxX2Z5/QVlLwdtKt+gIfmNMP8Qx6/qZh3LM/DFVdGJEAnUKrr4VwGmACB2kx/PQ5bx3R+QxnEg4fDPiTg== + dependencies: + "@next/eslint-plugin-next" "11.1.2" + "@rushstack/eslint-patch" "^1.0.6" + "@typescript-eslint/parser" "^4.20.0" + eslint-import-resolver-node "^0.3.4" + eslint-import-resolver-typescript "^2.4.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jsx-a11y "^6.4.1" + eslint-plugin-react "^7.23.1" + eslint-plugin-react-hooks "^4.2.0" + +eslint-config-prettier@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" + integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== + +eslint-import-resolver-node@^0.3.4, eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-import-resolver-typescript@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz#ec1e7063ebe807f0362a7320543aaed6fe1100e1" + integrity sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA== + dependencies: + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-module-utils@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" + integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== + dependencies: + debug "^3.2.7" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.22.1: + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== + dependencies: + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.6.2" + find-up "^2.0.0" + has "^1.0.3" + is-core-module "^2.6.0" + minimatch "^3.0.4" + object.values "^1.1.4" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" + tsconfig-paths "^3.11.0" + +eslint-plugin-jsx-a11y@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.23.1: + version "7.25.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz#9286b7cd9bf917d40309760f403e53016eda8331" + integrity sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug== + dependencies: + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" + doctrine "^2.1.0" + estraverse "^5.2.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.4" + object.fromentries "^2.0.4" + object.values "^1.1.4" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.5" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -2668,6 +3131,11 @@ extract-files@9.0.0, extract-files@^9.0.0: resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-glob@^3.1.1, fast-glob@^3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" @@ -2680,6 +3148,16 @@ fast-glob@^3.1.1, fast-glob@^3.2.5: micromatch "^4.0.2" picomatch "^2.2.1" +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + fastq@^1.6.0: version "1.12.0" resolved "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz" @@ -2734,6 +3212,13 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -2750,6 +3235,13 @@ find-cache-dir@3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" @@ -2758,6 +3250,19 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + flatten@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz" @@ -2815,6 +3320,11 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" @@ -2865,9 +3375,17 @@ get-stream@^6.0.0: resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -glob-parent@^5.1.0, glob-parent@~5.1.0, glob-parent@~5.1.2: +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -2884,7 +3402,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: +glob@7.1.7, glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: version "7.1.7" resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -2901,6 +3419,13 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== + dependencies: + type-fest "^0.20.2" + globby@11.0.3: version "11.0.3" resolved "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz" @@ -2913,6 +3438,18 @@ globby@11.0.3: merge2 "^1.3.0" slash "^3.0.0" +globby@^11.0.3: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + got@^9.6.0: version "9.6.0" resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" @@ -3065,6 +3602,11 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + html-tags@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz" @@ -3144,6 +3686,11 @@ ieee754@^1.1.13, ieee754@^1.1.4: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + ignore@^5.1.4: version "5.1.8" resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" @@ -3173,9 +3720,9 @@ import-cwd@^3.0.0: dependencies: import-from "^3.0.0" -import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -3193,6 +3740,11 @@ import-from@4.0.0: resolved "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz" integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + indent-string@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" @@ -3324,7 +3876,12 @@ is-callable@^1.1.4, is-callable@^1.2.3: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== -is-core-module@^2.2.0: +is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.2.0, is-core-module@^2.6.0: version "2.6.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz" integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== @@ -3367,7 +3924,7 @@ is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-glob@4.0.1, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -3436,6 +3993,14 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" @@ -3463,6 +4028,13 @@ is-string@^1.0.5, is-string@^1.0.6: resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== +is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" @@ -3552,6 +4124,14 @@ js-cookie@^2.2.1: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" @@ -3569,11 +4149,31 @@ json-buffer@3.0.0: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" @@ -3633,6 +4233,14 @@ jsonwebtoken@^8.5.1: ms "^2.1.1" semver "^5.6.0" +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + jwa@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" @@ -3662,6 +4270,18 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + latest-version@5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" @@ -3669,6 +4289,14 @@ latest-version@5.1.0: dependencies: package-json "^6.3.0" +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + lilconfig@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz" @@ -3757,6 +4385,16 @@ listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + load-script@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" @@ -3771,6 +4409,14 @@ loader-utils@1.2.3: emojis-list "^2.0.0" json5 "^1.0.1" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3833,6 +4479,11 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" @@ -3863,6 +4514,11 @@ lodash.topath@^4.5.2: resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak= +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -3945,6 +4601,13 @@ lru-cache@5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -4110,6 +4773,11 @@ native-url@0.3.4: dependencies: querystring "^0.2.0" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + next-seo@^4.26.0: version "4.26.0" resolved "https://registry.yarnpkg.com/next-seo/-/next-seo-4.26.0.tgz#4218cfae5651fdc2e330dcdf1cc1b34ce199d41c" @@ -4242,6 +4910,16 @@ node-releases@^1.1.71: resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz" integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" @@ -4351,6 +5029,34 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" +object.entries@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +object.fromentries@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -4377,6 +5083,18 @@ opener@^1.5.2: resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + os-browserify@0.3.0, os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" @@ -4399,6 +5117,13 @@ p-limit@3.1.0: dependencies: yocto-queue "^0.1.0" +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -4406,6 +5131,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" @@ -4425,6 +5157,11 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" @@ -4480,6 +5217,14 @@ parse-filepath@^1.0.2: map-cache "^0.2.0" path-root "^0.1.1" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse-json@^5.0.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" @@ -4516,6 +5261,11 @@ path-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" @@ -4548,6 +5298,13 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" @@ -4574,6 +5331,18 @@ pify@^2.3.0: resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" @@ -4581,6 +5350,13 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + platform@1.3.6: version "1.3.6" resolved "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz" @@ -4972,6 +5748,11 @@ postcss@^8.1.6, postcss@^8.2.1, postcss@^8.3.5: nanoid "^3.1.23" source-map-js "^0.6.2" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -4997,6 +5778,11 @@ process@0.11.10, process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -5202,6 +5988,23 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -5251,6 +6054,19 @@ regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== +regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + registry-auth-token@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" @@ -5322,6 +6138,11 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" @@ -5337,7 +6158,7 @@ resolve-from@^4.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.1.7, resolve@^1.20.0: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.20.0: version "1.20.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -5345,6 +6166,14 @@ resolve@^1.1.7, resolve@^1.20.0: is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" @@ -5383,9 +6212,9 @@ reusify@^1.0.4: resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" @@ -5457,9 +6286,9 @@ semver-compare@^1.0.0: resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: @@ -5467,6 +6296,13 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.2.1, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz" @@ -5622,6 +6458,32 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + sponge-case@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz" @@ -5629,6 +6491,11 @@ sponge-case@^1.0.1: dependencies: tslib "^2.0.3" +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + stacktrace-parser@0.1.10: version "0.1.10" resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" @@ -5726,6 +6593,20 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string.prototype.matchall@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" @@ -5786,11 +6667,21 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" @@ -5909,6 +6800,18 @@ tabbable@^5.2.0: resolved "https://registry.npmjs.org/tabbable/-/tabbable-5.2.0.tgz" integrity sha512-0uyt8wbP0P3T4rrsfYg/5Rg3cIJ8Shl1RJ54QMqYxm1TLdWqJD1u6+RQjr2Lor3wmfT7JRHkirIwy99ydBsyPg== +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + tailwindcss@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.2.tgz" @@ -5946,6 +6849,11 @@ tailwindcss@^2.2.2: resolve "^1.20.0" tmp "^0.2.1" +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" @@ -6040,9 +6948,19 @@ ts-pnp@^1.1.6: resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslib@^1.9.0: +tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2, tslib@^2.0.3, tslib@^2.1.0, tslib@~2.2.0: @@ -6065,6 +6983,13 @@ tslib@~2.3.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" @@ -6075,6 +7000,18 @@ tty-browserify@0.0.1: resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz" integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" @@ -6146,6 +7083,13 @@ upper-case@^2.0.2: dependencies: tslib "^2.0.3" +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" @@ -6220,11 +7164,24 @@ uuidv4@^6.2.10: "@types/uuid" "8.3.1" uuid "8.3.2" +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + valid-url@1.0.9, valid-url@^1.0.9: version "1.0.9" resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz" integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + value-or-promise@1.0.10: version "1.0.10" resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.10.tgz" @@ -6317,6 +7274,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz" @@ -6373,6 +7335,11 @@ yallist@^3.0.2: resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yaml-ast-parser@^0.0.43: version "0.0.43" resolved "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz" From 206b536a97ad000f79072f2ff7dda0a3a18ca918 Mon Sep 17 00:00:00 2001 From: quangnhan Date: Mon, 13 Sep 2021 10:02:16 +0700 Subject: [PATCH 02/36] bug: conflict --- .../common/TabCommon/components/TabItem/TabItem.tsx | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/components/common/TabCommon/components/TabItem/TabItem.tsx b/src/components/common/TabCommon/components/TabItem/TabItem.tsx index cc1737e44..49750dc55 100644 --- a/src/components/common/TabCommon/components/TabItem/TabItem.tsx +++ b/src/components/common/TabCommon/components/TabItem/TabItem.tsx @@ -1,9 +1,5 @@ import classNames from 'classnames' -<<<<<<< HEAD -import React, { RefObject, useRef } from 'react' -======= import React from 'react' ->>>>>>> 88f90912429447f6ae7bafa77484465965e0ee13 import s from './TabItem.module.scss' interface TabItemProps { @@ -32,8 +28,4 @@ const TabItem = ({ ) } -<<<<<<< HEAD export default TabItem -======= -export default TabItem ->>>>>>> 88f90912429447f6ae7bafa77484465965e0ee13 From 50725d982f616cd8f42dd7a34585b9993d8cf12d Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 10:30:09 +0700 Subject: [PATCH 03/36] styles: banner common --- pages/product/[slug].tsx | 5 ++-- src/components/common/Banner/Banner.tsx | 13 +++++++++- .../Banner/BannerItem/BannerItem.module.scss | 24 +++++++------------ .../ProductListBanner/ProductListBanner.tsx | 2 +- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/pages/product/[slug].tsx b/pages/product/[slug].tsx index c34394af5..d48c4b604 100644 --- a/pages/product/[slug].tsx +++ b/pages/product/[slug].tsx @@ -1,7 +1,7 @@ -import { Layout, RecipeDetail } from 'src/components/common' +import { Layout, RecipeDetail, RelevantBlogPosts } from 'src/components/common' import { ProductInfoDetail, RecommendedRecipes, ReleventProducts, ViewedProducts } from 'src/components/modules/product-detail' -import { INGREDIENT_DATA_TEST, RECIPE_DATA_TEST } from 'src/utils/demo-data' +import { BLOGS_DATA_TEST, INGREDIENT_DATA_TEST, RECIPE_DATA_TEST } from 'src/utils/demo-data' export default function Slug() { return <> @@ -10,6 +10,7 @@ export default function Slug() { + } diff --git a/src/components/common/Banner/Banner.tsx b/src/components/common/Banner/Banner.tsx index 1dbc04d9f..9b6b1099a 100644 --- a/src/components/common/Banner/Banner.tsx +++ b/src/components/common/Banner/Banner.tsx @@ -11,13 +11,24 @@ const option = { breakpoints: {} } const Banner = memo(({ data }: Props) => { + if (data.length === 1) { + const item = data[0] + return + } return ( data={data} itemKey="banner" Component={BannerItem} option={option} - isDot = {true} + isDot={true} /> ) }) diff --git a/src/components/common/Banner/BannerItem/BannerItem.module.scss b/src/components/common/Banner/BannerItem/BannerItem.module.scss index 72690f92d..72a288374 100644 --- a/src/components/common/Banner/BannerItem/BannerItem.module.scss +++ b/src/components/common/Banner/BannerItem/BannerItem.module.scss @@ -1,31 +1,28 @@ @import "../../../../styles/utilities"; .bannerItem { - @apply bg-primary-light custom-border-radius-lg overflow-hidden; - @screen md { - border: 1px solid var(--primary); - } + @apply bg-primary-light shape-common-lg overflow-hidden; + padding: 0; &.large { margin-bottom: 2.8rem; .inner { - @screen xl { - @apply bg-right-bottom; - background-size: unset; - } + background-size: cover; + background-position: right bottom; } } .inner { @apply bg-no-repeat; background-size: 90%; - background-position: right -500% bottom 0%; + background-position: right -500% bottom 0%; .content { background-image: linear-gradient( to right, - rgb(227, 242, 233, 0.9), - rgb(227, 242, 233, 0.5) 80%, + rgb(227, 242, 233) 63%, rgb(227, 242, 233, 0) ); - padding: 1.6rem; + + padding: 2rem; + padding-bottom: 4rem; max-width: 37rem; @screen md { max-width: 49.6rem; @@ -38,9 +35,6 @@ } .subHeading { @apply sub-headline; - @screen md { - @apply caption; - } } } diff --git a/src/components/modules/product-list/ProductListBanner/ProductListBanner.tsx b/src/components/modules/product-list/ProductListBanner/ProductListBanner.tsx index 17d48d637..edeaa9f35 100644 --- a/src/components/modules/product-list/ProductListBanner/ProductListBanner.tsx +++ b/src/components/modules/product-list/ProductListBanner/ProductListBanner.tsx @@ -16,7 +16,7 @@ const ProductListBanner = ({ }: Props) => { subtitle: "Last call! Shop deep deals on 100+ bulk picks while you can.", imgLink: BannerRight.src, size: "large", - }, + } ] } /> From 0eddfe7c91638822ca9a2f64568965530089a848 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 10:30:19 +0700 Subject: [PATCH 04/36] styles: banner home --- .../modules/home/HomeBanner/HomeBanner.module.scss | 4 ++-- src/components/modules/home/HomeBanner/HomeBanner.tsx | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/modules/home/HomeBanner/HomeBanner.module.scss b/src/components/modules/home/HomeBanner/HomeBanner.module.scss index fdba411c0..a8b1b1d27 100644 --- a/src/components/modules/home/HomeBanner/HomeBanner.module.scss +++ b/src/components/modules/home/HomeBanner/HomeBanner.module.scss @@ -11,14 +11,14 @@ @apply grid; grid-template-columns: 1fr 1.8fr; .left { - @apply relative flex items-end justify-center custom-border-radius-lg; + @apply relative flex items-end justify-center shape-common-lg; margin-right: 1.6rem; .imgWrap { @apply absolute w-full h-full; top: 0; left: 0; > div { - @apply w-full h-full custom-border-radius-lg; + @apply w-full h-full shape-common-lg; } img { object-fit: cover; diff --git a/src/components/modules/home/HomeBanner/HomeBanner.tsx b/src/components/modules/home/HomeBanner/HomeBanner.tsx index 18432ec82..90732211a 100644 --- a/src/components/modules/home/HomeBanner/HomeBanner.tsx +++ b/src/components/modules/home/HomeBanner/HomeBanner.tsx @@ -1,9 +1,10 @@ import React from 'react' -import { Banner } from 'src/components/common' +import { Banner, StaticImage } from 'src/components/common' import BannerImgRight from './assets/banner_full.png' import HomeBannerImg from './assets/home_banner.png' import s from './HomeBanner.module.scss' import Image from 'next/image' +import { ROUTE } from 'src/utils/constanst.utils' interface Props { className?: string @@ -15,7 +16,7 @@ const HomeBanner = ({ }: Props) => {
- +
Freshness
guaranteed @@ -28,12 +29,14 @@ const HomeBanner = ({ }: Props) => { subtitle: "Last call! Shop deep deals on 100+ bulk picks while you can.", imgLink: BannerImgRight.src, size: "small", + linkButton: ROUTE.PRODUCTS, }, { title: "Save 15% on your first order 2", subtitle: "Last call! Shop deep deals on 100+ bulk picks while you can.", imgLink: BannerImgRight.src, size: "small", + linkButton: ROUTE.PRODUCTS, } ] } From 46233a1108f5025fdfde95fa7a2e35c3c5d7ffa4 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 11:51:46 +0700 Subject: [PATCH 05/36] styles: banner item --- .../Banner/BannerItem/BannerItem.module.scss | 15 +++++++-------- src/components/common/Header/Header.tsx | 2 ++ src/utils/funtion.utils.ts | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/components/common/Banner/BannerItem/BannerItem.module.scss b/src/components/common/Banner/BannerItem/BannerItem.module.scss index 72a288374..9331a7aff 100644 --- a/src/components/common/Banner/BannerItem/BannerItem.module.scss +++ b/src/components/common/Banner/BannerItem/BannerItem.module.scss @@ -7,20 +7,19 @@ margin-bottom: 2.8rem; .inner { background-size: cover; - background-position: right bottom; + background-position: center bottom; + @screen xl { + background-position: right bottom; + } } } .inner { @apply bg-no-repeat; background-size: 90%; - background-position: right -500% bottom 0%; + background-position: right -500% bottom 0%; .content { - background-image: linear-gradient( - to right, - rgb(227, 242, 233) 63%, - rgb(227, 242, 233, 0) - ); - + background-image: linear-gradient(to right, rgb(227, 242, 233) 63%, rgb(227, 242, 233, 0)); + padding: 2rem; padding-bottom: 4rem; max-width: 37rem; diff --git a/src/components/common/Header/Header.tsx b/src/components/common/Header/Header.tsx index 5b42c6aaf..42dffbe0f 100644 --- a/src/components/common/Header/Header.tsx +++ b/src/components/common/Header/Header.tsx @@ -41,6 +41,8 @@ const Header = memo(({ toggleFilter }: props) => { } else { setIsFullHeader(true) } + } else { + setIsFullHeader(true) } } window.addEventListener('scroll', handleScroll) diff --git a/src/utils/funtion.utils.ts b/src/utils/funtion.utils.ts index 619e9ae30..43d517589 100644 --- a/src/utils/funtion.utils.ts +++ b/src/utils/funtion.utils.ts @@ -1,5 +1,5 @@ export function isMobile() { - return window.innerWidth <= 768 + return window.innerWidth < 768 } export function removeItem(arr: Array, value: T): Array { From 829aeaa84778d73b390e8729c01b31ce1bcaf04f Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 12:07:55 +0700 Subject: [PATCH 06/36] styles: fix product detail img --- .../ProductImgItem/ProductImgItem.module.scss | 8 ++++++++ .../ProductImgItem/ProductImgItem.tsx | 19 +++++++++++++++++++ .../ProductImgs/ProductImgs.module.scss | 3 +++ .../components/ProductImgs/ProductImgs.tsx | 16 ++++++++++++---- 4 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.module.scss create mode 100644 src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.tsx diff --git a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.module.scss b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.module.scss new file mode 100644 index 000000000..5ce5cc0ce --- /dev/null +++ b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.module.scss @@ -0,0 +1,8 @@ +.productImgItem { + @apply w-full h-full; + min-height: 30rem; + img { + object-fit: contain; + } +} + diff --git a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.tsx b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.tsx new file mode 100644 index 000000000..95236266c --- /dev/null +++ b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgItem/ProductImgItem.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import { ImgWithLink } from 'src/components/common' +import s from './ProductImgItem.module.scss' + +export interface ProductImgItemProps { + src: string + alt?: string +} + + +const ProductImgItem = ({ src, alt }: ProductImgItemProps) => { + return ( +
+ +
+ ) +} + +export default ProductImgItem diff --git a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.module.scss b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.module.scss index a10eb5865..94ce13cc1 100644 --- a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.module.scss +++ b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.module.scss @@ -6,4 +6,7 @@ @screen lg { max-width: 60rem; } + > div { + width: 100%; + } } diff --git a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx index 325c6b453..9a6d3da75 100644 --- a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx +++ b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx @@ -1,6 +1,6 @@ import React from 'react' -import { CarouselCommon, ImgWithLink } from 'src/components/common' -import { ImgWithLinkProps } from 'src/components/common/ImgWithLink/ImgWithLink' +import { CarouselCommon } from 'src/components/common' +import ProductImgItem, { ProductImgItemProps } from '../ProductImgItem/ProductImgItem' import s from './ProductImgs.module.scss' interface Props { @@ -9,6 +9,10 @@ interface Props { } const DATA = [ + { + src: 'https://user-images.githubusercontent.com/76729908/133026929-199799fc-bd75-4445-a24d-15c0e41796eb.png', + alt: 'Meat', + }, { src: 'https://user-images.githubusercontent.com/76729908/130574371-3b75fa72-9552-4605-aba9-a4b31cd9dce7.png', alt: 'Broccoli', @@ -21,15 +25,18 @@ const DATA = [ const option = { slidesPerView: 1, + // mode: "free", + + } const ProductImgs = ({ }: Props) => { return (
- + data={DATA} itemKey="product-detail-img" - Component={ImgWithLink} + Component={ProductImgItem} option={option} isDot={true} /> @@ -38,3 +45,4 @@ const ProductImgs = ({ }: Props) => { } export default ProductImgs + From fa84e88212c8e48966add25e68994462cb8850ba Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 13:14:43 +0700 Subject: [PATCH 07/36] :art: styles: button common with shape common :%s --- pages/test.tsx | 5 + .../ButtonCommon/ButtonCommon.module.scss | 150 ++++++++++-------- .../common/ButtonCommon/ButtonCommon.tsx | 10 +- .../components/ProductImgs/ProductImgs.tsx | 3 - .../ProductInfo/ProductInfo.module.scss | 3 + src/styles/_utilities.scss | 4 +- 6 files changed, 104 insertions(+), 71 deletions(-) diff --git a/pages/test.tsx b/pages/test.tsx index 644dc08ed..aa3fd1780 100644 --- a/pages/test.tsx +++ b/pages/test.tsx @@ -78,6 +78,11 @@ export default function Test() { } return ( <> +
+
+ Lorem ipsum dolor sit amet. +
+
{/* */} {/* */} diff --git a/src/components/common/ButtonCommon/ButtonCommon.module.scss b/src/components/common/ButtonCommon/ButtonCommon.module.scss index c7b9f1ffa..41ecee010 100644 --- a/src/components/common/ButtonCommon/ButtonCommon.module.scss +++ b/src/components/common/ButtonCommon/ButtonCommon.module.scss @@ -1,102 +1,124 @@ @import "../../../styles/utilities"; .buttonCommon { - @apply custom-border-radius bg-primary transition-all duration-200 text-white font-bold; - display: flex; - justify-content: center; - align-items: center; - padding: 1rem 2rem; - @screen md { - padding: 0.8rem 1.6rem; - } - @screen lg { - padding: 0.8rem 3.2rem; - } - &:disabled { - filter: brightness(0.9); - cursor: not-allowed; - color: var(--disabled); - } - &:hover { - @apply shadow-md; - &:not(:disabled) { + @apply shape-common; + .inner { + padding: 1rem 2rem; + @apply bg-primary transition-all duration-200 text-white font-bold; + display: flex; + justify-content: center; + align-items: center; + @screen md { + padding: 1.6rem 1.6rem; + } + @screen lg { + padding: 1.6rem 3.2rem; + } + &:disabled { + filter: brightness(0.9); + cursor: not-allowed; + color: var(--disabled); + } + &:hover { + @apply shadow-md; + &:not(:disabled) { + filter: brightness(1.05); + } + } + &:focus { + outline: none; filter: brightness(1.05); } + &:focus-visible { + outline: 2px solid var(--text-active); + } } - &:focus { - outline: none; - filter: brightness(1.05); - } - &:focus-visible { - outline: 2px solid var(--text-active); - } - &.loading { - &::before { - content: ""; - border-radius: 50%; - width: 1.6rem; - height: 1.6rem; - border: 3px solid rgba(170, 170, 170, 0.5); - border-top: 3px solid var(--white); - -webkit-animation: spin 2s linear infinite; - animation: spin 2s linear infinite; - margin-right: 0.8rem; + .inner { + &::after { + content: ""; + border-radius: 50%; + width: 1.6rem; + height: 1.6rem; + border: 3px solid rgba(170, 170, 170, 0.5); + border-top: 3px solid var(--white); + -webkit-animation: spin 2s linear infinite; + animation: spin 2s linear infinite; + margin-right: 0.8rem; + } } } &.light { - @apply text-base bg-white; - border: 1px solid var(--text-active); + @apply shape-common-border; + &::before { + background-color: var(--text-active); + } + .inner { + @apply text-base bg-white; + } &.loading { - &::before { - border-top-color: var(--primary); + .inner { + &::after { + border-top-color: var(--primary); + } } } } &.lightBorderNone { - @apply bg-white text-primary; + .inner { + @apply bg-white text-primary; + } &.loading { - &::before { + .inner::after { border-top-color: var(--primary); } } } &.ghost { - @apply bg-white text-primary; - border: 1px solid var(--primary); + @apply shape-common-border; + .inner { + @apply bg-white text-primary; + } + &::before { + background-color: var(--primary); + } &.loading { - &::before { + .inner::after { border-top-color: var(--text-active); } } } &.onlyIcon { - padding: 0.8rem; - .icon { - margin: 0; + .inner { + padding: 1.6rem; + .icon { + margin: 0; + } } } &.large { - padding: 1rem 1.5rem; - &.onlyIcon { - padding: 1rem; - } - @screen md { - padding: 1.6rem 3.2rem; + .inner { + padding: 1rem 1.5rem; &.onlyIcon { - padding: 1.6rem; + padding: 1rem; + } + @screen md { + padding: 1.6rem 3.2rem; + &.onlyIcon { + padding: 1.6rem; + } + } + @screen lg { + padding: 1.6rem 4.8rem; } } - @screen lg { - padding: 1.6rem 4.8rem; - } &.loading { - &::before { + .inner::before { width: 2.4rem; height: 2.4rem; } @@ -104,9 +126,11 @@ } &.preserve { - flex-direction: row-reverse; - .icon { - margin: 0 0 0 1.6rem; + .inner { + flex-direction: row-reverse; + .icon { + margin: 0 0 0 1.6rem; + } } } diff --git a/src/components/common/ButtonCommon/ButtonCommon.tsx b/src/components/common/ButtonCommon/ButtonCommon.tsx index 5b943f65b..965e9519e 100644 --- a/src/components/common/ButtonCommon/ButtonCommon.tsx +++ b/src/components/common/ButtonCommon/ButtonCommon.tsx @@ -27,10 +27,12 @@ const ButtonCommon = memo(({ type = 'primary', size = 'default', loading = false disabled={disabled} onClick={onClick} > - { - icon && {icon} - } - {children} +
+ { + icon && {icon} + } + {children} +
) }) diff --git a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx index 9a6d3da75..c300fba38 100644 --- a/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx +++ b/src/components/modules/product-detail/ProductInfoDetail/components/ProductImgs/ProductImgs.tsx @@ -25,9 +25,6 @@ const DATA = [ const option = { slidesPerView: 1, - // mode: "free", - - } const ProductImgs = ({ }: Props) => { diff --git a/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss b/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss index 403782c51..2119b3295 100644 --- a/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss +++ b/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss @@ -64,6 +64,9 @@ margin-left: 0.8rem; } } + svg path { + fill: currentColor; + } } button { @apply w-full; diff --git a/src/styles/_utilities.scss b/src/styles/_utilities.scss index c73526a27..5ce5f24af 100644 --- a/src/styles/_utilities.scss +++ b/src/styles/_utilities.scss @@ -121,12 +121,13 @@ .shape-common-border { position: relative; - $border: 2px; + $border: 1px; margin: $border; .inner { background: var(--white); clip-path: url(#svg-custom-shape); + margin: 1px; } &::before { position: absolute; @@ -152,6 +153,7 @@ .inner { padding: 2rem; + margin: 1px; clip-path: url(#svg-custom-shape-lg); } &::before { From ab619e7f644dfa02d82db39369c71869778129d7 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 13:30:37 +0700 Subject: [PATCH 08/36] :art: styles: fix shape input common :%s --- .../InputCommon/InputCommon.module.scss | 45 ++++++++++--------- .../common/InputCommon/InputCommon.tsx | 7 +-- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/components/common/InputCommon/InputCommon.module.scss b/src/components/common/InputCommon/InputCommon.module.scss index 6b12d2bbd..1c64c764e 100644 --- a/src/components/common/InputCommon/InputCommon.module.scss +++ b/src/components/common/InputCommon/InputCommon.module.scss @@ -15,10 +15,10 @@ .icon + .inputCommon { padding-left: 4.8rem; } - + .inputCommon { @apply block w-full transition-all duration-200 rounded bg-white; - padding: 1.2rem 1.6rem; + padding: 1.6rem; border: 1px solid var(--border-line); &:hover, &:focus, @@ -31,24 +31,6 @@ &::placeholder { @apply text-label; } - - &.custom { - @apply custom-border-radius; - border: 1px solid transparent; - background: var(--gray); - &:hover, - &:focus, - &:active { - border: 1px solid var(--primary); - } - } - &.bgTransparent { - background: rgb(227, 242, 233, 0.3); - color: var(--white); - &::placeholder { - color: var(--white); - } - } } &.preserve { @@ -91,4 +73,27 @@ color: var(--negative); margin-top: 0.4rem; } + + &.custom { + @apply shape-common; + .inputCommon { + border: none; + background: var(--background-gray); + &:hover, + &:focus, + &:active { + @apply shadow-md; + border: none; + } + } + } + &.bgTransparent { + .inputCommon { + background: rgb(227, 242, 233, 0.3); + color: var(--white); + &::placeholder { + color: var(--white); + } + } + } } diff --git a/src/components/common/InputCommon/InputCommon.tsx b/src/components/common/InputCommon/InputCommon.tsx index 0389c99b3..fbe1df191 100644 --- a/src/components/common/InputCommon/InputCommon.tsx +++ b/src/components/common/InputCommon/InputCommon.tsx @@ -6,7 +6,7 @@ import s from './InputCommon.module.scss'; type Ref = { focus: () => void - getValue: () => string | number + getValue: () => string | number } | null; interface Props { children?: React.ReactNode, @@ -63,6 +63,9 @@ const InputCommon = forwardRef(({ value, placeholder, type, styleTyp return (
(({ value, placeholder, type, styleTyp onKeyDown={handleKeyDown} className={classNames({ [s.inputCommon]: true, - [s[styleType]]: true, - [s.bgTransparent]: backgroundTransparent })} />
From 6cdad60b0a87f9d9ec35a8fdc5f595c47acfcf6c Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 13:40:53 +0700 Subject: [PATCH 09/36] :art: styles: fix img, bg home categories section :%s --- src/components/common/InputCommon/InputCommon.tsx | 8 +++----- .../CategoriesItem/CategoryItem.module.scss | 2 +- .../home/HomeCategories/CategoriesItem/CategoryItem.tsx | 3 ++- .../home/HomeCategories/HomeCategories.module.scss | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/common/InputCommon/InputCommon.tsx b/src/components/common/InputCommon/InputCommon.tsx index fbe1df191..7ef9d886f 100644 --- a/src/components/common/InputCommon/InputCommon.tsx +++ b/src/components/common/InputCommon/InputCommon.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; -import React, { forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react'; -import { IconCheck, IconError, IconPassword, IconPasswordCross } from 'src/components/icons'; +import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react'; +import { IconCheck, IconError } from 'src/components/icons'; import { KEY } from 'src/utils/constanst.utils'; import s from './InputCommon.module.scss'; @@ -81,9 +81,7 @@ const InputCommon = forwardRef(({ value, placeholder, type, styleTyp placeholder={placeholder} onChange={handleChange} onKeyDown={handleKeyDown} - className={classNames({ - [s.inputCommon]: true, - })} + className={s.inputCommon} />
{ diff --git a/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.module.scss b/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.module.scss index 41d593b6e..ae2b758e1 100644 --- a/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.module.scss +++ b/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.module.scss @@ -2,7 +2,7 @@ .categoryItem { .categoryItemImage { - @apply transition-all duration-200; + @apply flex justify-center items-center transition-all duration-200; width: 10.6rem; margin: 0 auto; max-height: 14rem; diff --git a/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.tsx b/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.tsx index 64046c1b3..1f94e176e 100644 --- a/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.tsx +++ b/src/components/modules/home/HomeCategories/CategoriesItem/CategoryItem.tsx @@ -4,6 +4,7 @@ import s from './CategoryItem.module.scss' import classNames from 'classnames'; import Image from "next/image"; import Link from 'next/link'; +import { StaticImage } from 'src/components/common'; interface CategoryItem { image: StaticImageData, @@ -17,7 +18,7 @@ const CategoryItem = ({ image, name, link }: CategoryItem) => { diff --git a/src/components/modules/home/HomeCategories/HomeCategories.module.scss b/src/components/modules/home/HomeCategories/HomeCategories.module.scss index 9865b95ed..f4135bd3c 100644 --- a/src/components/modules/home/HomeCategories/HomeCategories.module.scss +++ b/src/components/modules/home/HomeCategories/HomeCategories.module.scss @@ -4,7 +4,7 @@ margin: 3rem auto; .inner { - @apply relative spacing-horizontal; + @apply relative spacing-horizontal w-full; padding-top: 1.6rem; padding-bottom: 1.6rem; @@ -15,7 +15,7 @@ } @screen md { @apply relative; - margin: 5.6rem auto; + margin: 12.8rem auto; &::before, &::after { From d191ffc535cca035c542a65b34fdccf4ea110869 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 14:04:00 +0700 Subject: [PATCH 10/36] :art: styles: change img recipe to img common :%s --- .../RecipeDetailInfo.module.scss | 24 ++++++++++++------- .../RecipeDetailInfo/RecipeDetailInfo.tsx | 3 ++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss b/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss index 86b525083..fe2c7224b 100644 --- a/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss +++ b/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss @@ -2,13 +2,16 @@ .recipeDetailInfo { @apply spacing-horizontal; - margin: 5.6rem auto; + margin: 0 auto 5.6rem; @screen md { @apply flex; + margin: 5.6rem auto; } + .img { - width: fit-content; + width: 100%; margin-top: 0; + min-height: 50rem; @screen sm-only { margin-bottom: 2rem; @@ -16,13 +19,16 @@ @screen lg { max-width: 60rem; } - img { - @apply w-full; - object-fit: contain; - max-height: 64rem; - border-radius: 2.4rem; - @screen md { - max-height: 90rem; + > div { + min-height: 64rem; + img { + // object-fit: contain; + // @apply w-full; + min-height: 64rem; + border-radius: 2.4rem; + // @screen md { + // max-height: 90rem; + // } } } } diff --git a/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.tsx b/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.tsx index 4d212e10a..a853ad869 100644 --- a/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.tsx +++ b/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.tsx @@ -1,4 +1,5 @@ import React from 'react' +import { ImgWithLink } from 'src/components/common' import RecipeBriefInfo from '../RecipeBriefInfo/RecipeBriefInfo' import s from './RecipeDetailInfo.module.scss' @@ -12,7 +13,7 @@ const RecipeDetailInfo = ({ }: Props) => { return (
- Recipe +
From 4512e8cf24ad66003e3eacdfc5bd73233fc68687 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 14:08:10 +0700 Subject: [PATCH 11/36] :art: styles: fix img height in cart product not sell :%s --- .../ProductNotSell/ProductNotSell.module.scss | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/common/ProductCard/ProductNotSell/ProductNotSell.module.scss b/src/components/common/ProductCard/ProductNotSell/ProductNotSell.module.scss index 4945220a9..963a602ec 100644 --- a/src/components/common/ProductCard/ProductNotSell/ProductNotSell.module.scss +++ b/src/components/common/ProductCard/ProductNotSell/ProductNotSell.module.scss @@ -1,8 +1,12 @@ @import "../../../../styles/utilities"; .imgWrap { - img { - opacity: 0.5; + > div { + min-height: 13rem; + img { + opacity: 0.5; + object-fit: contain + } } } @@ -11,7 +15,7 @@ } .info { - @apply flex justify-center items-center custom-border-radius bg-info-light text-center; + @apply flex justify-center items-center shape-common bg-info-light text-center; padding: .8rem 1.6rem; margin-top: 1.6rem; color: var(--info); From fc3ade50db98f032e350119dc413a5e9082c390e Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 14:50:28 +0700 Subject: [PATCH 12/36] :art: styles: product carousel responsive :%s --- .../ButtonCommon/ButtonCommon.module.scss | 5 +- .../ProductCard/ProductCard.module.scss | 49 ++++++++++++------- .../ProductCarousel/ProductCarousel.tsx | 9 ++-- 3 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/components/common/ButtonCommon/ButtonCommon.module.scss b/src/components/common/ButtonCommon/ButtonCommon.module.scss index 41ecee010..1c188af4b 100644 --- a/src/components/common/ButtonCommon/ButtonCommon.module.scss +++ b/src/components/common/ButtonCommon/ButtonCommon.module.scss @@ -94,7 +94,10 @@ &.onlyIcon { .inner { - padding: 1.6rem; + padding: 1rem; + @screen md { + padding: 1.6rem; + } .icon { margin: 0; } diff --git a/src/components/common/ProductCard/ProductCard.module.scss b/src/components/common/ProductCard/ProductCard.module.scss index cffbe063b..2e62cc4d5 100644 --- a/src/components/common/ProductCard/ProductCard.module.scss +++ b/src/components/common/ProductCard/ProductCard.module.scss @@ -1,5 +1,5 @@ -.productCardWarpper{ - max-width: 20.8rem; +.productCardWarpper { + max-width: 22.4rem; min-height: 31.8rem; padding: 1.2rem 1.2rem 0 1.2rem; margin: auto; @@ -8,47 +8,47 @@ &.notSell { @apply justify-center; } - .cardTop{ + .cardTop { @apply relative; height: 13.8rem; width: 100%; - .productImage{ + .productImage { height: 100%; width: 100%; @apply flex justify-center items-center; - img{ + img { @apply inline; } - &:hover{ + &:hover { cursor: pointer; } } - .productLabel{ + .productLabel { @apply absolute left-0 bottom-0; } } - .cardMid{ + .cardMid { min-height: 10.4rem; @apply flex flex-col justify-between; - .cardMidTop{ - .productname{ + .cardMidTop { + .productname { font-weight: bold; color: var(--text-active); - &:hover{ + &:hover { cursor: pointer; } } - .productWeight{ + .productWeight { font-size: 1.2rem; line-height: 2rem; letter-spacing: 0.01em; color: var(--text-base); } } - .cardMidBot{ + .cardMidBot { padding-top: 0.8rem; @apply flex justify-between items-center border-t border-solid border-line; - .productPrice{ + .productPrice { @apply font-bold; font-size: 2rem; line-height: 2.8rem; @@ -56,11 +56,24 @@ } } } - .cardBot{ + .cardBot { min-height: 4rem; - @apply flex justify-between items-center; - .cardIcon{ + @apply flex justify-between items-center; + .cardIcon { margin-right: 0.8rem; } + .cardButton { + button { + > div { + span { + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow-y: hidden; + text-overflow: ellipsis; + } + } + } + } } -} \ No newline at end of file +} diff --git a/src/components/common/ProductCarousel/ProductCarousel.tsx b/src/components/common/ProductCarousel/ProductCarousel.tsx index 533e81ed3..381fc2992 100644 --- a/src/components/common/ProductCarousel/ProductCarousel.tsx +++ b/src/components/common/ProductCarousel/ProductCarousel.tsx @@ -19,11 +19,12 @@ const OPTION_DEFAULT: TOptionsEvents = { slidesPerView: 3, }, '(min-width: 768px)': { - slidesPerView: 4, + slidesPerView: 3, }, - '(min-width: 1024px)': { - slidesPerView: 4.5, - },'(min-width: 1280px)': { + '(min-width: 1008px)': { + slidesPerView: 3.5, + }, + '(min-width: 1440px)': { slidesPerView: 5.5, }, }, From 4cc6255717bed7ef09cf11307c449273f35e717f Mon Sep 17 00:00:00 2001 From: Quangnhankie Date: Mon, 13 Sep 2021 15:17:56 +0700 Subject: [PATCH 13/36] bug: edit tag img to ImageWithLink --- pages/test.tsx | 12 ++++++++++-- .../common/Author/Author.module.scss | 6 +++++- src/components/common/Author/Author.tsx | 5 ++++- .../BlogContent/BlogContent.module.scss | 13 +++++++------ .../blog-detail/BlogContent/BlogContent.tsx | 7 +++++-- .../BlogDetailImg/BlogDetailImg.module.scss | 12 ++++++++---- .../BlogDetailImg/BlogDetailImg.tsx | 5 ++++- ...n-ngon-noi-tieng-khong-an-that-co-loi-2.jpg | Bin 0 -> 182249 bytes .../RecipesItem/RecipesItem.module.scss | 11 ++++++----- .../RecipesList/RecipesItem/RecipesItem.tsx | 3 ++- 10 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 src/components/modules/blog-detail/BlogDetailImg/img/tong-hop-21-dac-san-sai-gon-ngon-noi-tieng-khong-an-that-co-loi-2.jpg diff --git a/pages/test.tsx b/pages/test.tsx index 644dc08ed..47ea40ce2 100644 --- a/pages/test.tsx +++ b/pages/test.tsx @@ -82,9 +82,17 @@ export default function Test() { {/* */} {/**/} - - + {/* + */} {/* */} +
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Fugit maiores aut, delectus assumenda explicabo, dolore facilis, quasi quae sed obcaecati doloribus dolorum architecto aperiam nisi dignissimos consequuntur amet neque possimus. +
+
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Temporibus, porro aut. Quas, consequuntur! Officiis magni cum placeat magnam ut hic beatae error facere obcaecati. Labore eius explicabo fugit minus veritatis. +
+
) } diff --git a/src/components/common/Author/Author.module.scss b/src/components/common/Author/Author.module.scss index 8d903546f..5a2dad969 100644 --- a/src/components/common/Author/Author.module.scss +++ b/src/components/common/Author/Author.module.scss @@ -2,11 +2,15 @@ .authorWarper{ @apply flex flex-row items-center; - .authorImage{ + .authorImage { width:3.2rem; height:3.2rem; border-radius:3.2rem; + div{ + min-width:3.2rem !important; + } } + .authorName{ margin-left:1rem; color:var(--text-label); diff --git a/src/components/common/Author/Author.tsx b/src/components/common/Author/Author.tsx index 1cf8e52af..6ec347b2c 100644 --- a/src/components/common/Author/Author.tsx +++ b/src/components/common/Author/Author.tsx @@ -1,6 +1,7 @@ import React from 'react'; import s from './Author.module.scss'; import classNames from 'classnames'; +import ImgWithLink from "../ImgWithLink/ImgWithLink"; interface Props { image:string, @@ -11,7 +12,9 @@ const Author = ({image,name}:Props) =>{ return (
- +
+ +
{name}
) diff --git a/src/components/modules/blog-detail/BlogContent/BlogContent.module.scss b/src/components/modules/blog-detail/BlogContent/BlogContent.module.scss index e081b5f15..7904c99aa 100644 --- a/src/components/modules/blog-detail/BlogContent/BlogContent.module.scss +++ b/src/components/modules/blog-detail/BlogContent/BlogContent.module.scss @@ -31,12 +31,13 @@ padding: 2rem 0; } .content{ - - - - img{ - width: 100%; - border-radius: 2.4rem; + figure{ + div{ + width: 100%; + border-radius: 2.4rem; + min-height: 45.2rem; + object-fit: cover; + } } } .boxShare{ diff --git a/src/components/modules/blog-detail/BlogContent/BlogContent.tsx b/src/components/modules/blog-detail/BlogContent/BlogContent.tsx index 17d8555ae..cb9d6b8d8 100644 --- a/src/components/modules/blog-detail/BlogContent/BlogContent.tsx +++ b/src/components/modules/blog-detail/BlogContent/BlogContent.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Author, DateTime } from "src/components/common"; +import { Author, DateTime, ImgWithLink } from "src/components/common"; import IconFacebook from 'src/components/icons/IconFacebook'; import IconInstagram from 'src/components/icons/IconInstagram'; import IconTwitter from 'src/components/icons/IconTwitter'; @@ -55,7 +55,10 @@ const BlogContent = ({}:BlogContentProps) => { You can eat broccoli stems. In fact, they are delicious. Just use a peeler to peel off the outsides and then trim the stalks into small 1/4”-1/2” cubes.


- blog-detail + +
+ +
diff --git a/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.module.scss b/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.module.scss index 98206b439..aad3aebbf 100644 --- a/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.module.scss +++ b/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.module.scss @@ -3,10 +3,14 @@ padding-bottom: 3.2rem; } .image{ - width: 100%; - padding: 0 2rem; - margin-bottom: 2rem; - border-radius: 2.4rem; + div{ + width: 100%; + padding: 0 2rem; + margin-bottom: 2rem; + border-radius: 2.4rem; + min-height: 45.2rem; + } + @screen md { width: 90%; margin:0 auto; diff --git a/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.tsx b/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.tsx index b7eb6aaef..ed9b88a29 100644 --- a/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.tsx +++ b/src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg.tsx @@ -1,5 +1,6 @@ import React from 'react'; +import { ImgWithLink } from 'src/components/common'; import BreadcrumbCommon from 'src/components/common/BreadcrumbCommon/BreadcrumbCommon'; import s from './BlogDetailImg.module.scss'; interface Props { @@ -19,7 +20,9 @@ const BlogDetailImg = ({}:Props ) => {
- Ảnh đại diện +
+ +
) } diff --git a/src/components/modules/blog-detail/BlogDetailImg/img/tong-hop-21-dac-san-sai-gon-ngon-noi-tieng-khong-an-that-co-loi-2.jpg b/src/components/modules/blog-detail/BlogDetailImg/img/tong-hop-21-dac-san-sai-gon-ngon-noi-tieng-khong-an-that-co-loi-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ca84eae9268914b2e1fc20d24cb75ac489a9d720 GIT binary patch literal 182249 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

jP6g#k!8yi&=v2eWkl^xDuT#Hk!Ak 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

xUX$v0`nMphjAU-CJHsTzLgw+&`sx zWTE)rbWhXOE8AU(bary>OH4V8dgs_41+^^z`m}g1z62lPfoHYV>Z)ElfOAXHn_}P< z70{+7)AAs!f2m3jLY1qi^GW`AY>}h_iY>3wQ*z<5RqAn|+oc}1on_5Tqz?t2s8_)B z!ZwDLB%-4uB2#>cO|96Ha8Y5&Cgm_{4rGh>rX> z0^Ff&l?^SZ{{Tp$h$tQy=08nUiYryV@|3@~X6A>QNeeJ#r$Hmk5nXzJx}z9%DT48; z*h8c27G=jB%?s8KZ%1TSz1<53LHK80m~?BMrzNdQX5H4xBq2;Rr(>3T#S*lHhCE}s zbq~uY{I&Rea~K9nbW4JUs$G^O6g-xsUABDQ@83h0MkK>|Uq@+6Pzxy?XiZZ}`Qb=w z)owpD&|6mYJ8id#PrUo2yRom$AxM_eQ~v;?DX&t?3N+H9oR30Ng=EuA63wk~S($MU zu-Ydws9$p-#723r+S3|BPv*GVQnRi)kNJrQNI9g}EDT!Cr5firQ%I_Q?b$bI$Z)f6 zRmQ~ffw&|sEtXwP0Tp>^DhkO+AZrIIVJi|uo}5BL@B%$p6jE(d6ZYs*9a~-9cE^?g zb5J?9;7Y)$PD&%w@;G?CYdV}$8wu!>!r(6M?7ItVW#?9;-t8=;DGeVLwBc|iNdDxL zPmOcHRwTB*-abFUN4M$oO~pHJLybRYjHh8O=hG$-AU1`Msck9609icP@h_e0U3y9g#l4FH&Y(N?lqhiex+gRCKB82VPM zCZ&F(ZEDjg@477aY|^w617O#&Eh?glN^(M#OuiJsE%I4#6#njOZvN%HxmfN()37EsDviK?d^l2Riv!^O`7;!Yyif#Q#)P$kP4496& z9reE3aMF|ox``F49*RP>mDeREoj>Wo^lDY5{TG)@T4k*FD)f4h;rNTaT-=q zhrj8sT4^*n0_H{fPxD2;S5)-0yCKNYp*H80_)&KjXp`z`ri$Jzll288fO=OF4XnIZN^7_c!m5H&5oa3R9-Jk~}lDwOg)-5aNYY={c=S01&ScL4leDQctZ` zfm8jXsk-@8kNM!n`6U`i`g2(!DbG;tfT9npEo0^Cr{YC?fyVVd3od)KG8`hDp;Dp33D_NlR63wM&(u)%~=oH2zr2+Rqh)m2gsvF6%;4 z=kyG#PveZj7LH9v>rq~wK3I2;B!t5ZQgRG{=bH9axpk*`&uEGxV;t;3c>N($IL0Z*7q>wTI4+HSSl+@Il?g_378-;omQ~-Ws{uuM=g%ef5DIM)Ks?V=a zL;auf{#ZKSAe#v*YBsGeYOak6(_WSMd~v0~3l%Fe%Z0RuQ>0K)RRrL8GsSMeI+d>O zu%Vz;6dCwe4s8J#;56WnB$s=psmuO2UBFQ=zcinov8;IJ4^QWVhtg=ZDNQ95Z_=86 z6u@4k<*6>6!Aeu%(*#*{UMo)p1?BA^AE=O@1M$YP5(W#)(Mwb`Str0#3AN6yOABs4 z)Xo99`j%4Z?UvlB120J(e+pqFqbRaAnB;nv0>7O1ZVVu9BmfA8N zr4{Y&+~CGx=n>w%ZD}j2A;~Fa_|8`_(w3xa73o9r!xht8)Ts@zJrmx_tCLd0wnP~* zR)hBuoT5v9D-M+q+LhpwP_KnB(C|7UU7ji5E!#`cR4!3WM=GBBiuHoC(@v6ld5__M z-sg;l3k|Agsi?8pb=!25&$R0N=*tRi%AcpUqMVdJ=&gKlh_lBu;`C-EZTy&-xt-Bg-hU~FoUYX=C?$tm*O+8)E zswYi4>c%i$WpPEVu=e3k`nzOJaP^eUwJl(yK?(K6ab+L@)QrcG!#(XZl%zzH>PB=d zIM7UnOn86(BFI&870RUl031go0UE`zYI5Tp30x@hC)*UIB}|1BEh`;X(OFGF9RiQb z0xjgK`+G8b_GM{VdBr*UYfK;YC|MclJ#_)ssKyEq4^nwXlOfnF!rm6+8d4GjE7L1& zPOmRXaj>$ms#3Hc^C(CgMDYo59-LD9X5iTnEW2b<%7i^0V5^<*)V {

From 0369e1dd25dd5d52ae1797f3403dd58a41842362 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 15:18:51 +0700 Subject: [PATCH 14/36] :art: styles: change shape component list product with info :%s --- .../ListProductWithInfo.module.scss | 19 ++++++------------- .../ListProductWithInfo.tsx | 12 +++++++++--- .../ProductCarousel/ProductCarousel.tsx | 9 ++++++--- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss b/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss index ddd8ed901..6acb4aed0 100644 --- a/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss +++ b/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss @@ -17,8 +17,11 @@ @apply spacing-horizontal-left; @screen lg { max-width: 75%; - @apply custom-border-radius-lg bg-white; - padding: 4rem .8rem; + padding: 0 .8rem; + > div > div { + @apply shape-common-lg bg-white; + padding: 4rem 0; + } :global(.customArrow) { @screen lg { &:global(.leftArrow) { @@ -31,18 +34,8 @@ } } @screen xl { - padding: 4rem 2.4rem; + padding: 0 2.4rem; max-width: 80%; - :global(.customArrow) { - @screen lg { - &:global(.leftArrow) { - left: calc(-6.4rem + 1rem); - } - &:global(.rightArrow) { - right: calc(-6.4rem + 1rem); - } - } - } } } } diff --git a/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx b/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx index 66b8253d1..2200fd71e 100644 --- a/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx +++ b/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx @@ -18,12 +18,18 @@ const OPTION_DEFAULT: TOptionsEvents = { slidesPerView: 3, }, '(min-width: 768px)': { - slidesPerView: 4, - }, - '(min-width: 1024px)': { slidesPerView: 3, }, + '(min-width: 1008px)': { + slidesPerView: 3.5, + }, + '(min-width: 1024px)': { + slidesPerView: 2.5, + }, '(min-width: 1280px)': { + slidesPerView: 3.5, + }, + '(min-width: 1440px)': { slidesPerView: 4.5, }, }, diff --git a/src/components/common/ProductCarousel/ProductCarousel.tsx b/src/components/common/ProductCarousel/ProductCarousel.tsx index 381fc2992..8252e08a6 100644 --- a/src/components/common/ProductCarousel/ProductCarousel.tsx +++ b/src/components/common/ProductCarousel/ProductCarousel.tsx @@ -7,9 +7,9 @@ import ProductCard, { ProductCardProps } from '../ProductCard/ProductCard' import s from "./ProductCarousel.module.scss" interface ProductCarouselProps - extends Omit, 'Component'|"option"> { - option?:TOptionsEvents - } + extends Omit, 'Component' | "option"> { + option?: TOptionsEvents +} const OPTION_DEFAULT: TOptionsEvents = { slidesPerView: 2, @@ -24,6 +24,9 @@ const OPTION_DEFAULT: TOptionsEvents = { '(min-width: 1008px)': { slidesPerView: 3.5, }, + '(min-width: 1280px)': { + slidesPerView: 4.5, + }, '(min-width: 1440px)': { slidesPerView: 5.5, }, From 022c905d82fd7c5be5244c9ec85947894f066f9f Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 15:27:19 +0700 Subject: [PATCH 15/36] :art: styles: border viewed product in product detail :%s --- pages/product/[slug].tsx | 2 +- .../ListProductWithInfo/ListProductWithInfo.module.scss | 6 ++++-- .../common/ListProductWithInfo/ListProductWithInfo.tsx | 9 +++++++-- .../product-detail/ViewedProducts/ViewedProducts.tsx | 1 + 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/pages/product/[slug].tsx b/pages/product/[slug].tsx index d48c4b604..dd06bb337 100644 --- a/pages/product/[slug].tsx +++ b/pages/product/[slug].tsx @@ -10,7 +10,7 @@ export default function Slug() { - + } diff --git a/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss b/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss index 6acb4aed0..9697a8ead 100644 --- a/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss +++ b/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss @@ -3,9 +3,11 @@ .listProductWithInfo { background-color: var(--background); border-top: 1rem solid var(--gray); - border-bottom: 1rem solid var(--gray); padding-top: 6rem; padding-bottom: 6rem; + &.borderBottom { + border-bottom: 1rem solid var(--gray); + } @screen lg { @apply flex spacing-horizontal-left; padding-top: 5.6rem; @@ -17,7 +19,7 @@ @apply spacing-horizontal-left; @screen lg { max-width: 75%; - padding: 0 .8rem; + padding: 0 0.8rem; > div > div { @apply shape-common-lg bg-white; padding: 4rem 0; diff --git a/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx b/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx index 2200fd71e..0bbd1df65 100644 --- a/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx +++ b/src/components/common/ListProductWithInfo/ListProductWithInfo.tsx @@ -1,3 +1,4 @@ +import classNames from 'classnames'; import { TOptionsEvents } from 'keen-slider'; import React from 'react'; import CarouselCommon from '../CarouselCommon/CarouselCommon'; @@ -9,6 +10,7 @@ interface Props { data: ProductCardProps[], title: string, subtitle?: string, + hasBorderBottomMobile?: boolean, } const OPTION_DEFAULT: TOptionsEvents = { slidesPerView: 2, @@ -35,9 +37,12 @@ const OPTION_DEFAULT: TOptionsEvents = { }, } -const ListProductWithInfo = ({ data, title, subtitle }: Props) => { +const ListProductWithInfo = ({ data, title, subtitle, hasBorderBottomMobile }: Props) => { return ( -
+
{ title="viewed Products" subtitle="Last call! Shop deep deals on 100+ bulk picks while you can." data={PRODUCT_DATA_TEST} + hasBorderBottomMobile={true} /> ); }; From a3240ab05942a59eb638d3c72e1e78c8f63c47ac Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 15:38:31 +0700 Subject: [PATCH 16/36] :art: styles: page product detail :%s --- pages/product/[slug].tsx | 2 +- .../common/ButtonCommon/ButtonCommon.module.scss | 9 ++++++--- .../ListProductWithInfo/ListProductWithInfo.module.scss | 3 +++ .../RecipeDetailInfo/RecipeDetailInfo.module.scss | 5 ++++- .../components/ProductInfo/ProductInfo.module.scss | 7 +++++-- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/pages/product/[slug].tsx b/pages/product/[slug].tsx index dd06bb337..5413c686a 100644 --- a/pages/product/[slug].tsx +++ b/pages/product/[slug].tsx @@ -10,7 +10,7 @@ export default function Slug() { - + } diff --git a/src/components/common/ButtonCommon/ButtonCommon.module.scss b/src/components/common/ButtonCommon/ButtonCommon.module.scss index 1c188af4b..a0c33947d 100644 --- a/src/components/common/ButtonCommon/ButtonCommon.module.scss +++ b/src/components/common/ButtonCommon/ButtonCommon.module.scss @@ -106,7 +106,7 @@ &.large { .inner { - padding: 1rem 1.5rem; + padding: 1rem 1.6rem; &.onlyIcon { padding: 1rem; } @@ -139,8 +139,11 @@ .icon { margin: 0 1.6rem 0 0; - svg path { - fill: currentColor; + svg { + height: 2rem; + path { + fill: currentColor; + } } } } diff --git a/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss b/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss index 9697a8ead..de7b96d3d 100644 --- a/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss +++ b/src/components/common/ListProductWithInfo/ListProductWithInfo.module.scss @@ -7,6 +7,9 @@ padding-bottom: 6rem; &.borderBottom { border-bottom: 1rem solid var(--gray); + @screen lg { + border-bottom: none; + } } @screen lg { @apply flex spacing-horizontal-left; diff --git a/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss b/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss index fe2c7224b..94647504d 100644 --- a/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss +++ b/src/components/common/RecipeDetail/components/RecipeDetailInfo/RecipeDetailInfo.module.scss @@ -7,7 +7,7 @@ @apply flex; margin: 5.6rem auto; } - + .img { width: 100%; margin-top: 0; @@ -61,6 +61,9 @@ list-style: disc; margin-left: 2rem; } + a { + color: var(--info); + } } } } diff --git a/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss b/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss index 2119b3295..4235edf66 100644 --- a/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss +++ b/src/components/modules/product-detail/ProductInfoDetail/components/ProductInfo/ProductInfo.module.scss @@ -64,8 +64,11 @@ margin-left: 0.8rem; } } - svg path { - fill: currentColor; + svg { + height: 2rem; + path { + fill: currentColor; + } } } button { From 9336462af17bee9f9e8b480d3952fbad17dae465 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Mon, 13 Sep 2021 16:13:07 +0700 Subject: [PATCH 17/36] :art: styles: cart drawer responsive :%s --- .../CartCheckoutButton/CartCheckoutButton.module.scss | 2 ++ .../CartCheckoutButton/CartCheckoutButton.tsx | 10 +++++++--- .../CartRecommendation/CartRecommendation.module.scss | 4 +++- src/utils/constanst.utils.ts | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.module.scss b/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.module.scss index 3f90bffbd..e4fceb2d1 100644 --- a/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.module.scss +++ b/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.module.scss @@ -1,5 +1,7 @@ .cartCheckoutButton { + display: block; padding: 1.6rem; + width: 100%; button { width: 100%; } diff --git a/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.tsx b/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.tsx index 0cd7d00a2..5cc8f5f6f 100644 --- a/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.tsx +++ b/src/components/common/CartDrawer/components/CartCheckoutButton/CartCheckoutButton.tsx @@ -1,12 +1,16 @@ import React, { memo } from 'react'; import { ButtonCommon } from 'src/components/common'; import s from './CartCheckoutButton.module.scss'; +import Link from 'next/link' +import { ROUTE } from 'src/utils/constanst.utils'; const CartCheckoutButton = memo(() => { return ( -
- Check out - Rp 120.500 -
+ + + Check out - Rp 120.500 + + ) }) diff --git a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss index 88664460c..1d0f95582 100644 --- a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss +++ b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss @@ -2,6 +2,7 @@ .cartRecommendation { @apply w-full bg-background-gray; + padding-bottom: 1.6rem; .top { @apply flex justify-between items-center; padding: 1.6rem; @@ -12,7 +13,8 @@ .productCardWarpper { padding-left: 1.6rem; :global(.customArrow) { - @apply bg-line; + @apply bg-line shadow-md; + opacity: .8; @screen lg { &:global(.leftArrow) { left: calc(-6.4rem - 2rem); diff --git a/src/utils/constanst.utils.ts b/src/utils/constanst.utils.ts index 3757feb1e..bdb2665db 100644 --- a/src/utils/constanst.utils.ts +++ b/src/utils/constanst.utils.ts @@ -12,11 +12,12 @@ export const ROUTE = { PRODUCTS: '/products', PRODUCT_DETAIL: '/product', ABOUT: '/about', - BLOG_DETAIL: '/blog', ACCOUNT: '/account', + BLOG_DETAIL: '/blog', RECIPES: '/recipes', BUSSINESS: '/bussiness', CONTACT: '/contact', + CHECKOUT: '/checkout', FAQ: '/faq', CUSTOMER_SERVICE: '/customer-service', TERM_CONDITION: '/term-condition', From f7608e5ef1c3c74630e7d703a1beccdc279577f9 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 09:32:52 +0700 Subject: [PATCH 18/36] :art: styles: cart drawer recommendation with single btn :%s --- .../common/CarouselCommon/CarouselCommon.tsx | 15 +++++++---- .../common/CartDrawer/CartDrawer.module.scss | 2 +- .../CartRecommendation/CartRecommendation.tsx | 11 ++++++-- .../ProductCard/ProductCard.module.scss | 5 +++- .../common/ProductCard/ProductCard.tsx | 25 ++++++++++++++----- 5 files changed, 43 insertions(+), 15 deletions(-) diff --git a/src/components/common/CarouselCommon/CarouselCommon.tsx b/src/components/common/CarouselCommon/CarouselCommon.tsx index 3b5854ed4..29f351ccb 100644 --- a/src/components/common/CarouselCommon/CarouselCommon.tsx +++ b/src/components/common/CarouselCommon/CarouselCommon.tsx @@ -15,6 +15,7 @@ export interface CarouselCommonProps { option: TOptionsEvents keenClassname?: string isPadding?: boolean + defaultComponentProps?: object } const CarouselCommon = ({ @@ -25,6 +26,7 @@ const CarouselCommon = ({ isPadding = false, isArrow = true, isDot = false, + defaultComponentProps, option: { slideChanged,slidesPerView, ...sliderOption }, }: CarouselCommonProps) => { const [currentSlide, setCurrentSlide] = React.useState(0) @@ -68,11 +70,14 @@ const CarouselCommon = ({ [s.isPadding]: isPadding, })} > - {data?.map((props, index) => ( -
- -
- ))} + {data?.map((props, index) => { + const allProps = defaultComponentProps ? { ...props, ...defaultComponentProps } : props + return ( +
+ +
+ ) + })}
{slider && isArrow && ( <> diff --git a/src/components/common/CartDrawer/CartDrawer.module.scss b/src/components/common/CartDrawer/CartDrawer.module.scss index 126028d3c..3ff81bc0a 100644 --- a/src/components/common/CartDrawer/CartDrawer.module.scss +++ b/src/components/common/CartDrawer/CartDrawer.module.scss @@ -4,7 +4,7 @@ .cartDrawer { @apply flex flex-col h-full; .body { - @apply overflow-y-auto overflow-x-hidden h-full custom-scroll; + @apply flex flex-col justify-center overflow-y-auto overflow-x-hidden h-full custom-scroll; } .bottom { padding-top: 1.6rem; diff --git a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.tsx b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.tsx index bbc40647e..b275ceda5 100644 --- a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.tsx +++ b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.tsx @@ -7,14 +7,20 @@ import { PRODUCT_DATA_TEST } from 'src/utils/demo-data'; import s from './CartRecommendation.module.scss'; const option: TOptionsEvents = { - slidesPerView: 2, + slidesPerView: 1.5, mode: 'free', breakpoints: { '(min-width: 640px)': { - slidesPerView: 1, + slidesPerView: 1.5, }, '(min-width: 768px)': { slidesPerView: 2.5, + }, + '(min-width: 1008px)': { + slidesPerView: 2.2, + }, + '(min-width: 1440px)': { + slidesPerView: 2.5, } }, } @@ -34,6 +40,7 @@ const CartRecommendation = () => { Component={ProductCard} itemKey="cart-recommendation" option={option} + defaultComponentProps={{ isSingleButton: true }} />
diff --git a/src/components/common/ProductCard/ProductCard.module.scss b/src/components/common/ProductCard/ProductCard.module.scss index 2e62cc4d5..4a11c7ff0 100644 --- a/src/components/common/ProductCard/ProductCard.module.scss +++ b/src/components/common/ProductCard/ProductCard.module.scss @@ -57,13 +57,16 @@ } } .cardBot { - min-height: 4rem; @apply flex justify-between items-center; + min-height: 4rem; + margin-top: 1.6rem; .cardIcon { margin-right: 0.8rem; } .cardButton { + width: 100%; button { + width: 100%; > div { span { display: -webkit-box; diff --git a/src/components/common/ProductCard/ProductCard.tsx b/src/components/common/ProductCard/ProductCard.tsx index a6022efa4..f867d3724 100644 --- a/src/components/common/ProductCard/ProductCard.tsx +++ b/src/components/common/ProductCard/ProductCard.tsx @@ -1,5 +1,6 @@ import Link from 'next/link' import React from 'react' +import { IconBuy } from 'src/components/icons' import { ROUTE } from 'src/utils/constanst.utils' import { ProductProps } from 'src/utils/types.utils' import ButtonCommon from '../ButtonCommon/ButtonCommon' @@ -11,6 +12,7 @@ import ProductNotSell from './ProductNotSell/ProductNotSell' export interface ProductCardProps extends ProductProps { buttonText?: string + isSingleButton?: boolean, } const ProductCard = ({ @@ -21,6 +23,7 @@ const ProductCard = ({ buttonText = 'Buy Now', imageSrc, isNotSell, + isSingleButton, }: ProductCardProps) => { if (isNotSell) { return
@@ -56,12 +59,22 @@ const ProductCard = ({
-
- -
-
- {buttonText} -
+ { + isSingleButton ? +
+ }>Add to cart +
+ : + <> +
+ +
+
+ {buttonText} +
+ + } +
) From 4ae9ace396bb51ea2f34c6ff9295550a4b199fc8 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 09:35:58 +0700 Subject: [PATCH 19/36] :bug: bug: toggle btn cart in from btn in header - mobile view :%s --- src/components/common/Header/Header.tsx | 2 +- .../HeaderMenu/HeaderMenu.module.scss | 26 ++++++++-------- .../components/HeaderMenu/HeaderMenu.tsx | 30 +++++++++---------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/components/common/Header/Header.tsx b/src/components/common/Header/Header.tsx index 42dffbe0f..7aad47d71 100644 --- a/src/components/common/Header/Header.tsx +++ b/src/components/common/Header/Header.tsx @@ -78,7 +78,7 @@ const Header = memo(({ toggleFilter }: props) => { openModalInfo={openModalInfo} /> - + void, openModalInfo: () => void, - toggleFilter:() => void, - toggleCart:() => void, + toggleFilter: () => void, + toggleCart: () => void, } -const FILTER_PAGE = [ROUTE.HOME,ROUTE.PRODUCTS] +const FILTER_PAGE = [ROUTE.HOME, ROUTE.PRODUCTS] const HeaderMenu = memo(({ isFull, openModalAuthen, openModalInfo, toggleFilter, toggleCart }: Props) => { const router = useRouter() @@ -44,16 +44,16 @@ const HeaderMenu = memo(({ isFull, openModalAuthen, openModalInfo, toggleFilter,
- +
{ FILTER_PAGE.includes(router.pathname) && ( ) } -
@@ -86,16 +86,16 @@ const HeaderMenu = memo(({ isFull, openModalAuthen, openModalInfo, toggleFilter, - + { - FILTER_PAGE.includes(router.pathname) && ( -
  • - -
  • - ) - } + FILTER_PAGE.includes(router.pathname) && ( +
  • + +
  • + ) + }
    ) From b312069710bd89fd2a14324089b3e3740c986095 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 09:42:06 +0700 Subject: [PATCH 20/36] :art: styles: cart drawer spacing :%s --- src/components/common/CartDrawer/CartDrawer.module.scss | 3 --- src/components/common/CartDrawer/CartDrawer.tsx | 2 +- .../CartRecommendation/CartRecommendation.module.scss | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/common/CartDrawer/CartDrawer.module.scss b/src/components/common/CartDrawer/CartDrawer.module.scss index 3ff81bc0a..d5bba6c57 100644 --- a/src/components/common/CartDrawer/CartDrawer.module.scss +++ b/src/components/common/CartDrawer/CartDrawer.module.scss @@ -6,7 +6,4 @@ .body { @apply flex flex-col justify-center overflow-y-auto overflow-x-hidden h-full custom-scroll; } - .bottom { - padding-top: 1.6rem; - } } \ No newline at end of file diff --git a/src/components/common/CartDrawer/CartDrawer.tsx b/src/components/common/CartDrawer/CartDrawer.tsx index 0a432bb65..31da985ef 100644 --- a/src/components/common/CartDrawer/CartDrawer.tsx +++ b/src/components/common/CartDrawer/CartDrawer.tsx @@ -23,7 +23,7 @@ const CartDrawer = ({ visible, onClose }: Props) => { -
    +
    diff --git a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss index 1d0f95582..11b781537 100644 --- a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss +++ b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss @@ -2,7 +2,7 @@ .cartRecommendation { @apply w-full bg-background-gray; - padding-bottom: 1.6rem; + padding-bottom: 5.4rem; .top { @apply flex justify-between items-center; padding: 1.6rem; From 362ae97526299262c325bccb5e1677b450ef258f Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 09:44:03 +0700 Subject: [PATCH 21/36] :art: styles: arrow in cart recommendation :%s --- .../CartRecommendation.module.scss | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss index 11b781537..9095aadc1 100644 --- a/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss +++ b/src/components/common/CartDrawer/components/CartRecommendation/CartRecommendation.module.scss @@ -1,4 +1,4 @@ -@import '../../../../../styles/utilities'; +@import "../../../../../styles/utilities"; .cartRecommendation { @apply w-full bg-background-gray; @@ -14,14 +14,9 @@ padding-left: 1.6rem; :global(.customArrow) { @apply bg-line shadow-md; - opacity: .8; - @screen lg { - &:global(.leftArrow) { - left: calc(-6.4rem - 2rem); - } - &:global(.rightArrow) { - right: calc(-6.4rem - 2rem); - } + opacity: 0.8; + &:global(.rightArrow) { + right: 1rem; } } } From 20d6ebf24cb31c7e67c97c90c22224cadb3c9699 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 10:43:38 +0700 Subject: [PATCH 22/36] :art: styles: fix header active item in mobile and color when tap to link header :%s --- .../HeaderSubMenuMobile.module.scss | 12 +++++++----- .../HeaderSubMenuMobile/HeaderSubMenuMobile.tsx | 9 +++++++-- src/components/icons/IconNoti.tsx | 11 +++++++++++ src/components/icons/index.ts | 1 + src/utils/constanst.utils.ts | 1 + 5 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 src/components/icons/IconNoti.tsx diff --git a/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.module.scss b/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.module.scss index 230d9e59e..5acab44b4 100644 --- a/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.module.scss +++ b/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.module.scss @@ -4,30 +4,32 @@ @apply fixed w-full bg-white; bottom: 0; left: 0; - padding: 2rem 1rem; + padding: 0 1rem 1rem; border-top: 1px solid var(--border-line); box-shadow: -5px 6px 10px rgba(0, 0, 0, 0.2); z-index: 9999; .menu { - @apply grid grid-cols-4; + @apply grid grid-cols-5; li { a { @apply transition-all duration-200 no-underline; - &:hover { - color: var(--primary); - } + -webkit-tap-highlight-color: unset; } .menuItem { @apply flex flex-col justify-center items-center sm-label; + padding-top: 1rem; + border-top: 2px solid transparent; .icon { position: relative; margin-bottom: 0.5rem; + height: 3rem; svg path { fill: currentColor; } } &.active { @apply text-primary; + border-top: 2px solid var(--primary); } &.dot { .icon { diff --git a/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx b/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx index d2cf1bf3e..ee15ac2cf 100644 --- a/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx +++ b/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx @@ -2,7 +2,7 @@ import classNames from 'classnames' import Link from 'next/link' import { useRouter } from 'next/router' import { memo } from 'react' -import { IconHeart, IconHome, IconShopping, IconUser } from 'src/components/icons' +import { IconHeart, IconHome, IconNoti, IconShopping, IconUser } from 'src/components/icons' import { ACCOUNT_TAB, QUERY_KEY, ROUTE } from 'src/utils/constanst.utils' import s from './HeaderSubMenuMobile.module.scss' @@ -11,7 +11,6 @@ const OPTION_MENU = [ link: ROUTE.HOME, name: 'Home', icon: , - isMarked: true, }, { link: ROUTE.PRODUCTS, @@ -25,6 +24,12 @@ const OPTION_MENU = [ icon: , isMarked: false, }, + { + link: `${ROUTE.ACCOUNT}?${QUERY_KEY.TAB}=${ACCOUNT_TAB.NOTIFICATION}`, + name: 'Notifications', + icon: , + isMarked: true, + }, { link: ROUTE.ACCOUNT, name: 'Account', diff --git a/src/components/icons/IconNoti.tsx b/src/components/icons/IconNoti.tsx new file mode 100644 index 000000000..ab166fecc --- /dev/null +++ b/src/components/icons/IconNoti.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +const IconNoti = () => { + return ( + + + + ) +} + +export default IconNoti diff --git a/src/components/icons/index.ts b/src/components/icons/index.ts index 7dd36b14f..0a6aab07a 100644 --- a/src/components/icons/index.ts +++ b/src/components/icons/index.ts @@ -33,3 +33,4 @@ export { default as IconMinus } from './IconMinus' export { default as IconCirclePlus } from './IconCirclePlus' export { default as IconDoneCheckout } from './IconDoneCheckout' export { default as IconFilter } from './IconFilter' +export { default as IconNoti } from './IconNoti' \ No newline at end of file diff --git a/src/utils/constanst.utils.ts b/src/utils/constanst.utils.ts index bdb2665db..ad3a5bf81 100644 --- a/src/utils/constanst.utils.ts +++ b/src/utils/constanst.utils.ts @@ -30,6 +30,7 @@ export const ACCOUNT_TAB = { CUSTOMER_INFO: '', ORDER: 'orders', FAVOURITE: 'wishlist', + NOTIFICATION: 'notification', } export const QUERY_KEY = { From faf0bc1e35fa25294ff66d9ae0deca6d4fe84b4d Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 10:52:58 +0700 Subject: [PATCH 23/36] :art: styles: img common in product cart :%s --- src/components/common/ProductCard/ProductCard.module.scss | 6 ++++++ src/components/common/ProductCard/ProductCard.tsx | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/common/ProductCard/ProductCard.module.scss b/src/components/common/ProductCard/ProductCard.module.scss index 4a11c7ff0..170ac7743 100644 --- a/src/components/common/ProductCard/ProductCard.module.scss +++ b/src/components/common/ProductCard/ProductCard.module.scss @@ -16,6 +16,12 @@ height: 100%; width: 100%; @apply flex justify-center items-center; + > div { + min-height: 13rem; + img { + object-fit: contain; + } + } img { @apply inline; } diff --git a/src/components/common/ProductCard/ProductCard.tsx b/src/components/common/ProductCard/ProductCard.tsx index f867d3724..af982cbd1 100644 --- a/src/components/common/ProductCard/ProductCard.tsx +++ b/src/components/common/ProductCard/ProductCard.tsx @@ -3,6 +3,7 @@ import React from 'react' import { IconBuy } from 'src/components/icons' import { ROUTE } from 'src/utils/constanst.utils' import { ProductProps } from 'src/utils/types.utils' +import { ImgWithLink } from '..' import ButtonCommon from '../ButtonCommon/ButtonCommon' import ButtonIconBuy from '../ButtonIconBuy/ButtonIconBuy' import ItemWishList from '../ItemWishList/ItemWishList' @@ -37,7 +38,7 @@ const ProductCard = ({
    - image +
    From 3e001bbf1804dbf928709629be7ae0218c3e1681 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 14 Sep 2021 11:48:24 +0700 Subject: [PATCH 24/36] refactor: change image --- .../common/CardBlog/CardBlog.module.scss | 5 ++- src/components/common/CardBlog/CardBlog.tsx | 4 +- .../RelevantBlogPosts/RelevantBlogPosts.tsx | 15 +++---- .../modules/blogs/BlogsList/BlogsList.tsx | 42 ++++++++----------- .../FeaturedCardBlog.module.scss | 10 +++-- .../FeaturedCardBlog/FeaturedCardBlog.tsx | 15 +++---- 6 files changed, 42 insertions(+), 49 deletions(-) diff --git a/src/components/common/CardBlog/CardBlog.module.scss b/src/components/common/CardBlog/CardBlog.module.scss index 6e62ed5ff..f9d1b58e5 100644 --- a/src/components/common/CardBlog/CardBlog.module.scss +++ b/src/components/common/CardBlog/CardBlog.module.scss @@ -4,8 +4,6 @@ @apply inline-flex flex-col justify-start; max-width: 39.2rem; .image { - width: 100%; - max-height: 22rem; border-radius: 2.4rem; &:hover { cursor: pointer; @@ -13,6 +11,9 @@ img{ border-radius: 2.4rem; } + > div{ + min-height: 22rem; + } } .title { padding: 1.6rem 0.8rem 0.4rem 0.8rem; diff --git a/src/components/common/CardBlog/CardBlog.tsx b/src/components/common/CardBlog/CardBlog.tsx index 314a6a1fd..a44f45494 100644 --- a/src/components/common/CardBlog/CardBlog.tsx +++ b/src/components/common/CardBlog/CardBlog.tsx @@ -2,7 +2,9 @@ import Link from 'next/link' import React from 'react' import { ROUTE } from 'src/utils/constanst.utils' import { BlogProps } from 'src/utils/types.utils' +import { ImgWithLink } from '..' import s from './CardBlog.module.scss' + export interface BlogCardProps extends BlogProps { // todo: edit when intergrate API @@ -14,7 +16,7 @@ const CardBlog = ({ imageSrc, title, description, slug }: BlogCardProps) => {
    - image cardblog +
    diff --git a/src/components/common/RelevantBlogPosts/RelevantBlogPosts.tsx b/src/components/common/RelevantBlogPosts/RelevantBlogPosts.tsx index 1d71a6ca1..ab21590c3 100644 --- a/src/components/common/RelevantBlogPosts/RelevantBlogPosts.tsx +++ b/src/components/common/RelevantBlogPosts/RelevantBlogPosts.tsx @@ -1,6 +1,3 @@ -import image15 from '../../../../public/assets/images/image15.png' -import image16 from '../../../../public/assets/images/image16.png' -import image17 from '../../../../public/assets/images/image17.png' import classNames from 'classnames' import React from 'react' import { HeadingCommon, ViewAllItem } from 'src/components/common' @@ -22,32 +19,32 @@ const recipe:BlogCardProps[] = [ title: "Want to Lose Weight? Here are 10 DEBM Diet Guidelines for Beginners", slug: 'have-a-nice-lunch', description:"The DEBM diet stands for "+'"Delicious Happy Fun Diet"'+". This diet was popularized by Robert...", - imageSrc: image15.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185783-8100ef4e-7a72-4dc1-bb12-2ca46b56b393.png", },{ title: "9 Ways to Make an Aloe Vera Mask at Home", slug: 'have-a-nice-lunch', description:"Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", - imageSrc: image16.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185911-df505d10-fdcd-4312-add3-7c62ad8af71e.png", },{ title: "Don't Buy Wrong, Here Are 7 Ways to Choose a Ripe Dragon Fruit", slug: 'have-a-nice-lunch', description:"Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", - imageSrc: image17.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185959-7ad75580-ca6d-4684-83d9-3f64500bbc97.png", },{ title: "Want to Lose Weight? Here are 10 DEBM Diet Guidelines for Beginners", slug: 'have-a-nice-lunch', description:"The DEBM diet stands for "+'"Delicious Happy Fun Diet"'+". This diet was popularized by Robert...", - imageSrc: image15.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185783-8100ef4e-7a72-4dc1-bb12-2ca46b56b393.png", },{ title: "9 Ways to Make an Aloe Vera Mask at Home", slug: 'have-a-nice-lunch', description:"Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", - imageSrc: image16.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185911-df505d10-fdcd-4312-add3-7c62ad8af71e.png", },{ title: "Don't Buy Wrong, Here Are 7 Ways to Choose a Ripe Dragon Fruit", slug: 'have-a-nice-lunch', description:"Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", - imageSrc: image17.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185959-7ad75580-ca6d-4684-83d9-3f64500bbc97.png", }] const RelevantBlogPosts = ({ data = recipe, itemKey="detail-relevant", title="Relevant Blog Posts", bgcolor = "default" }: RelevantProps) => { diff --git a/src/components/modules/blogs/BlogsList/BlogsList.tsx b/src/components/modules/blogs/BlogsList/BlogsList.tsx index 536aa4afd..9b7ddc1e0 100644 --- a/src/components/modules/blogs/BlogsList/BlogsList.tsx +++ b/src/components/modules/blogs/BlogsList/BlogsList.tsx @@ -3,12 +3,6 @@ import CardBlog, { BlogCardProps } from 'src/components/common/CardBlog/CardBlog import PaginationCommon from 'src/components/common/PaginationCommon/PaginationCommon' import s from "./BlogsList.module.scss" import { DEFAULT_BLOG_PAGE_SIZE } from 'src/utils/constanst.utils' -import image15 from '../../../../../public/assets/images/image15.png' -import image16 from '../../../../../public/assets/images/image16.png' -import image17 from '../../../../../public/assets/images/image17.png' -import image21 from '../../../../../public/assets/images/image21.png' -import image22 from '../../../../../public/assets/images/image22.png' -import image23 from '../../../../../public/assets/images/image23.png' interface BlogsListProps { data?: BlogCardProps[], @@ -16,109 +10,109 @@ interface BlogsListProps { const BLOGSLIST_DATA = [ { - imageSrc: image15.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185783-8100ef4e-7a72-4dc1-bb12-2ca46b56b393.png", title: "1", description: "The DEBM diet stands for "+"Delicious Happy Fun Diet"+". This diet was popularized by Robert...", slug: "happy-diet" }, { - imageSrc: image16.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185911-df505d10-fdcd-4312-add3-7c62ad8af71e.png", title: "2", description: "Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", slug: "happy-diet" }, { - imageSrc: image17.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185959-7ad75580-ca6d-4684-83d9-3f64500bbc97.png", title: "3", description: "Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", slug: "happy-diet" }, { - imageSrc: image21.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186410-d8718d90-82fb-46cb-a0f2-0ec96356ae89.png", title: "4", description: "The DEBM diet stands for "+"Delicious Happy Fun Diet"+". This diet was popularized by Robert...", slug: "happy-diet" }, { - imageSrc: image22.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186474-b2d89bbc-32ed-4174-a05e-3d388c0a39ff.png", title: "5", description: "Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", slug: "happy-diet" }, { - imageSrc: image23.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186545-d860f4ee-222c-4d72-a876-808af0f397a0.png", title: "6", description: "Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", slug: "happy-diet" }, { - imageSrc: image15.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185783-8100ef4e-7a72-4dc1-bb12-2ca46b56b393.png", title: "7", description: "The DEBM diet stands for "+"Delicious Happy Fun Diet"+". This diet was popularized by Robert...", slug: "happy-diet" }, { - imageSrc: image16.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185911-df505d10-fdcd-4312-add3-7c62ad8af71e.png", title: "8", description: "Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", slug: "happy-diet" }, { - imageSrc: image17.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185959-7ad75580-ca6d-4684-83d9-3f64500bbc97.png", title: "9", description: "Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", slug: "happy-diet" }, { - imageSrc: image23.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186545-d860f4ee-222c-4d72-a876-808af0f397a0.png", title: "10", description: "Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", slug: "happy-diet" }, { - imageSrc: image21.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186410-d8718d90-82fb-46cb-a0f2-0ec96356ae89.png", title: "11", description: "The DEBM diet stands for "+"Delicious Happy Fun Diet"+". This diet was popularized by Robert...", slug: "happy-diet" }, { - imageSrc: image22.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186474-b2d89bbc-32ed-4174-a05e-3d388c0a39ff.png", title: "12", description: "Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", slug: "happy-diet" }, { - imageSrc: image15.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185783-8100ef4e-7a72-4dc1-bb12-2ca46b56b393.png", title: "13", description: "The DEBM diet stands for "+"Delicious Happy Fun Diet"+". This diet was popularized by Robert...", slug: "happy-diet" }, { - imageSrc: image16.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185911-df505d10-fdcd-4312-add3-7c62ad8af71e.png", title: "14", description: "Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", slug: "happy-diet" }, { - imageSrc: image17.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133185959-7ad75580-ca6d-4684-83d9-3f64500bbc97.png", title: "15", description: "Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", slug: "happy-diet" }, { - imageSrc: image21.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186410-d8718d90-82fb-46cb-a0f2-0ec96356ae89.png", title: "16", description: "The DEBM diet stands for "+"Delicious Happy Fun Diet"+". This diet was popularized by Robert...", slug: "happy-diet" }, { - imageSrc: image23.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186545-d860f4ee-222c-4d72-a876-808af0f397a0.png", title: "17", description: "Dragon fruit is a type of fruit that is a favorite for many people because of its delicious and fresh...", slug: "happy-diet" }, { - imageSrc: image22.src, + imageSrc: "https://user-images.githubusercontent.com/46085455/133186474-b2d89bbc-32ed-4174-a05e-3d388c0a39ff.png", title: "18", description: "Aloe vera or aloe vera is a green plant, has thorns on the side of the skin with yellowish patches and...", slug: "happy-diet" diff --git a/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.module.scss b/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.module.scss index 6fb16450c..f8e2ff3e8 100644 --- a/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.module.scss +++ b/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.module.scss @@ -11,13 +11,15 @@ } } .left { - max-width: 59.8rem; - img { - border-radius: 2.4rem; + > div{ + min-width: 59.8rem; + min-height: 33.6rem; + img { + border-radius: 2.4rem; + } } } .right { - flex-shrink: 3; @screen lg { margin-left: 6.4rem; } diff --git a/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.tsx b/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.tsx index 2bd158d79..ec90633d8 100644 --- a/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.tsx +++ b/src/components/modules/blogs/FeaturedCardBlog/FeaturedCardBlog.tsx @@ -1,14 +1,11 @@ import s from './FeaturedCardBlog.module.scss' -import { Author, DateTime } from 'src/components/common' -import Image from "next/image"; -import image20 from '../../../../../public/assets/images/image20.png' -import author from '../../../../../public/assets/images/author.png' +import { Author, DateTime, ImgWithLink } from 'src/components/common' interface FeaturedCardBlogProps{ title?: string, content?: string, - imgSrc?: any, - imgAuthor?: any, + imgSrc?: string, + imgAuthor?: string, date?: string, authorName?: string, } @@ -16,8 +13,8 @@ interface FeaturedCardBlogProps{ const FEATURED_DATA = { title: "Flammekueche with green asparagus", content: "Traditionally, the Flammekueche is made with rapeseed oil, which, contrary to popular belief, is indeed an oil that can be cooked hot and is not limited to seasoning. It is important to vary the oils in the kitchen to take advantage of the benefits of each. Rapeseed oil is an oil rich in omega 3 which participate in the proper functioning of the cardiovascular system as well as in vitamins E which contributes to the protection of cells against oxidative stress. In short, oils are your friends 😉", - imgSrc: image20, - imgAuthor: author.src, + imgSrc: "https://user-images.githubusercontent.com/46085455/133186666-1ea8081f-4319-4617-8644-d20ed14b1825.png", + imgAuthor: "https://user-images.githubusercontent.com/46085455/133186783-d0c71d43-b7bc-44b6-b560-818c71bd162f.png", date: "APRIL 30, 2021", author: "Alessandro Del Piero" } @@ -34,7 +31,7 @@ const FeaturedCardBlog = ({
    - image feature card +
    From 0eb8ade7308f5e9d1de16e93e6677307139de1dd Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:01:19 +0700 Subject: [PATCH 25/36] :art: styles: border radius input common default :%s --- .../common/InputCommon/InputCommon.module.scss | 3 ++- .../common/MenuDropdown/MenuDropdown.module.scss | 3 ++- .../ModalCreateUserInfo/ModalCreateUserInfo.tsx | 9 +++------ src/utils/constanst.utils.ts | 11 +++++++++++ tailwind.config.js | 3 --- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/components/common/InputCommon/InputCommon.module.scss b/src/components/common/InputCommon/InputCommon.module.scss index 1c64c764e..5471b2169 100644 --- a/src/components/common/InputCommon/InputCommon.module.scss +++ b/src/components/common/InputCommon/InputCommon.module.scss @@ -17,7 +17,8 @@ } .inputCommon { - @apply block w-full transition-all duration-200 rounded bg-white; + @apply block w-full transition-all duration-200 bg-white; + border-radius: .8rem; padding: 1.6rem; border: 1px solid var(--border-line); &:hover, diff --git a/src/components/common/MenuDropdown/MenuDropdown.module.scss b/src/components/common/MenuDropdown/MenuDropdown.module.scss index 5332794ff..20b54dcaa 100644 --- a/src/components/common/MenuDropdown/MenuDropdown.module.scss +++ b/src/components/common/MenuDropdown/MenuDropdown.module.scss @@ -71,7 +71,8 @@ @apply block shadow-md; } .menuIner { - @apply rounded list-none bg-white; + @apply list-none bg-white; + border-radius: 0.8rem; border: 1px solid var(--text-active); margin-top: 0.4rem; > li { diff --git a/src/components/common/ModalCreateUserInfo/ModalCreateUserInfo.tsx b/src/components/common/ModalCreateUserInfo/ModalCreateUserInfo.tsx index 85817c930..c3794bf81 100644 --- a/src/components/common/ModalCreateUserInfo/ModalCreateUserInfo.tsx +++ b/src/components/common/ModalCreateUserInfo/ModalCreateUserInfo.tsx @@ -1,9 +1,7 @@ -import classNames from 'classnames'; -import Link from 'next/link'; import React, { useRef } from 'react'; -import { useModalCommon } from 'src/components/hooks/useModalCommon'; +import { STATE_OPTIONS } from 'src/utils/constanst.utils'; import { CustomInputCommon } from 'src/utils/type.utils'; -import { Inputcommon } from '..'; +import { Inputcommon, SelectCommon } from '..'; import ButtonCommon from '../ButtonCommon/ButtonCommon'; import ModalCommon from '../ModalCommon/ModalCommon'; import s from './ModalCreateUserInfo.module.scss'; @@ -27,8 +25,7 @@ const ModalCreateUserInfo = ({ demoVisible: visible, demoCloseModal: closeModal
    - {/* todo: select, not input */} - +
    diff --git a/src/utils/constanst.utils.ts b/src/utils/constanst.utils.ts index ad3a5bf81..b1afabb7a 100644 --- a/src/utils/constanst.utils.ts +++ b/src/utils/constanst.utils.ts @@ -119,3 +119,14 @@ export const FEATURED = [ ] export const DEFAULT_BLOG_PAGE_SIZE=6; + +export const STATE_OPTIONS = [ + { + name: 'Hồ Chí Minh', + value: 'Hồ Chí Minh', + }, + { + name: 'Hà Nội', + value: 'Hà Nội', + }, +] \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js index 69ab1ade5..ec9f0e5d1 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -106,9 +106,6 @@ module.exports = { fontSize: { base: ['16px', '24px'], }, - borderRadius: { - rounded: '.8rem', - }, screens: { 'sm-only': {'min': '0', 'max': '767px'}, 'sm': '640px', From 083d0f11420c05436ac602169835d70667707435 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:01:36 +0700 Subject: [PATCH 26/36] :art: styles: set border width select commong =1px :%s --- src/components/common/SelectCommon/SelectCommon.module.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/common/SelectCommon/SelectCommon.module.scss b/src/components/common/SelectCommon/SelectCommon.module.scss index 4809a46bb..82ce46f5b 100644 --- a/src/components/common/SelectCommon/SelectCommon.module.scss +++ b/src/components/common/SelectCommon/SelectCommon.module.scss @@ -28,7 +28,7 @@ } &.custom { .selectTrigger { - @apply border-2; + border-width: 1px; border-color: var(--border-line); color: var(--text-label); } @@ -68,7 +68,7 @@ @apply border-solid border border-current; } &.custom { - @apply border-2; + border-width: 1px; border-color: var(--border-line); color: var(--text-label); } From b3b5a310d8a044c5874ec329ff533e868193023c Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:13:51 +0700 Subject: [PATCH 27/36] :art: styles: fix header animation :%s --- src/components/common/Header/Header.tsx | 3 +-- .../components/HeaderHighLight/HeaderHighLight.module.scss | 1 + .../Header/components/HeaderMenu/HeaderMenu.module.scss | 4 ---- .../common/Header/components/HeaderMenu/HeaderMenu.tsx | 5 ++--- .../components/HeaderSubMenu/HeaderSubMenu.module.scss | 1 + 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/components/common/Header/Header.tsx b/src/components/common/Header/Header.tsx index 7aad47d71..1638b6571 100644 --- a/src/components/common/Header/Header.tsx +++ b/src/components/common/Header/Header.tsx @@ -59,7 +59,6 @@ const Header = memo(({ toggleFilter }: props) => { @@ -71,7 +70,7 @@ const Header = memo(({ toggleFilter }: props) => { [s.headerSticky]: true, [s.show]: !isFullHeader })}> - void, openModalInfo: () => void, toggleFilter: () => void, @@ -19,7 +18,7 @@ interface Props { const FILTER_PAGE = [ROUTE.HOME, ROUTE.PRODUCTS] -const HeaderMenu = memo(({ isFull, openModalAuthen, openModalInfo, toggleFilter, toggleCart }: Props) => { +const HeaderMenu = memo(({ openModalAuthen, openModalInfo, toggleFilter, toggleCart }: Props) => { const router = useRouter() const optionMenu = useMemo(() => [ { @@ -41,7 +40,7 @@ const HeaderMenu = memo(({ isFull, openModalAuthen, openModalInfo, toggleFilter, ], [openModalAuthen]) return ( -
    +
    diff --git a/src/components/common/Header/components/HeaderSubMenu/HeaderSubMenu.module.scss b/src/components/common/Header/components/HeaderSubMenu/HeaderSubMenu.module.scss index 3d8016c6b..231ac8300 100644 --- a/src/components/common/Header/components/HeaderSubMenu/HeaderSubMenu.module.scss +++ b/src/components/common/Header/components/HeaderSubMenu/HeaderSubMenu.module.scss @@ -5,6 +5,7 @@ @screen md { @apply block; padding-bottom: 2.4rem; + margin-top: 1.6rem; transform: none; height: unset; @screen lg { From 9802a6537a5aa8f0f8d996c7b5ef4c3b975d41ce Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:14:00 +0700 Subject: [PATCH 28/36] :art: styles: recipe detail :%s --- pages/product/[slug].tsx | 4 ++-- pages/recipe/[slug].tsx | 12 ++++++++++++ .../RecommendedRecipes.module.scss | 2 +- .../RecommendedRecipes/RecommendedRecipes.tsx | 0 src/components/common/index.ts | 1 + src/components/modules/product-detail/index.ts | 1 - src/styles/_pages.scss | 6 ++++++ src/styles/main.scss | 2 ++ 8 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 pages/recipe/[slug].tsx rename src/components/{modules/product-detail => common}/RecommendedRecipes/RecommendedRecipes.module.scss (94%) rename src/components/{modules/product-detail => common}/RecommendedRecipes/RecommendedRecipes.tsx (100%) create mode 100644 src/styles/_pages.scss diff --git a/pages/product/[slug].tsx b/pages/product/[slug].tsx index 5413c686a..ab9a1c17c 100644 --- a/pages/product/[slug].tsx +++ b/pages/product/[slug].tsx @@ -1,6 +1,6 @@ -import { Layout, RecipeDetail, RelevantBlogPosts } from 'src/components/common' -import { ProductInfoDetail, RecommendedRecipes, ReleventProducts, ViewedProducts } from 'src/components/modules/product-detail' +import { Layout, RecipeDetail, RecommendedRecipes, RelevantBlogPosts } from 'src/components/common' +import { ProductInfoDetail, ReleventProducts, ViewedProducts } from 'src/components/modules/product-detail' import { BLOGS_DATA_TEST, INGREDIENT_DATA_TEST, RECIPE_DATA_TEST } from 'src/utils/demo-data' export default function Slug() { diff --git a/pages/recipe/[slug].tsx b/pages/recipe/[slug].tsx new file mode 100644 index 000000000..1f71ba5be --- /dev/null +++ b/pages/recipe/[slug].tsx @@ -0,0 +1,12 @@ + +import { Layout, RecipeDetail, RecommendedRecipes } from 'src/components/common' +import { INGREDIENT_DATA_TEST, RECIPE_DATA_TEST } from 'src/utils/demo-data' + +export default function Slug() { + return
    + + +
    +} + +Slug.Layout = Layout diff --git a/src/components/modules/product-detail/RecommendedRecipes/RecommendedRecipes.module.scss b/src/components/common/RecommendedRecipes/RecommendedRecipes.module.scss similarity index 94% rename from src/components/modules/product-detail/RecommendedRecipes/RecommendedRecipes.module.scss rename to src/components/common/RecommendedRecipes/RecommendedRecipes.module.scss index d43e2d58c..b96b7d4e7 100644 --- a/src/components/modules/product-detail/RecommendedRecipes/RecommendedRecipes.module.scss +++ b/src/components/common/RecommendedRecipes/RecommendedRecipes.module.scss @@ -1,4 +1,4 @@ -@import "../../../../styles/utilities"; +@import "../../../styles/utilities"; .recommendedRecipes { margin: 6rem auto; diff --git a/src/components/modules/product-detail/RecommendedRecipes/RecommendedRecipes.tsx b/src/components/common/RecommendedRecipes/RecommendedRecipes.tsx similarity index 100% rename from src/components/modules/product-detail/RecommendedRecipes/RecommendedRecipes.tsx rename to src/components/common/RecommendedRecipes/RecommendedRecipes.tsx diff --git a/src/components/common/index.ts b/src/components/common/index.ts index 7de333d3a..868d49e29 100644 --- a/src/components/common/index.ts +++ b/src/components/common/index.ts @@ -46,3 +46,4 @@ export { default as TabCommon} from './TabCommon/TabCommon' export { default as StaticImage} from './StaticImage/StaticImage' export { default as EmptyCommon} from './EmptyCommon/EmptyCommon' export { default as CustomShapeSvg} from './CustomShapeSvg/CustomShapeSvg' +export { default as RecommendedRecipes} from './RecommendedRecipes/RecommendedRecipes' diff --git a/src/components/modules/product-detail/index.ts b/src/components/modules/product-detail/index.ts index ef4461432..07fd04753 100644 --- a/src/components/modules/product-detail/index.ts +++ b/src/components/modules/product-detail/index.ts @@ -1,4 +1,3 @@ export { default as ProductInfoDetail } from './ProductInfoDetail/ProductInfoDetail' export { default as ViewedProducts } from './ViewedProducts/ViewedProducts' export { default as ReleventProducts } from './ReleventProducts/ReleventProducts' -export { default as RecommendedRecipes } from './RecommendedRecipes/RecommendedRecipes' diff --git a/src/styles/_pages.scss b/src/styles/_pages.scss new file mode 100644 index 000000000..0855aaada --- /dev/null +++ b/src/styles/_pages.scss @@ -0,0 +1,6 @@ +.page-recipe-detail { + margin-bottom: 5.4rem; + @screen lg { + margin-bottom: 12.8rem; + } +} \ No newline at end of file diff --git a/src/styles/main.scss b/src/styles/main.scss index 2e4abf3da..51391b33f 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -5,3 +5,5 @@ @import "~tailwindcss/utilities"; @import './utilities'; + +@import './pages' From 8452638097c533a5c1ea38930d32fa4f3f962d37 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:20:46 +0700 Subject: [PATCH 29/36] :recycle: enhan: link to recipe detail :%s --- .../common/RecipeCard/RecipeCard.tsx | 21 ++++++++++++------- src/utils/constanst.utils.ts | 11 +++++++--- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/components/common/RecipeCard/RecipeCard.tsx b/src/components/common/RecipeCard/RecipeCard.tsx index 92ab879e9..014708935 100644 --- a/src/components/common/RecipeCard/RecipeCard.tsx +++ b/src/components/common/RecipeCard/RecipeCard.tsx @@ -1,19 +1,24 @@ import Link from 'next/link' import React from 'react' +import { ROUTE } from 'src/utils/constanst.utils' import { RecipeProps } from 'src/utils/types.utils' import s from './RecipeCard.module.scss' -export interface RecipeCardProps extends RecipeProps {} +export interface RecipeCardProps extends RecipeProps { } -const RecipeCard = ({ imageSrc, title, description }: RecipeCardProps) => { +const RecipeCard = ({ imageSrc, title, description, slug }: RecipeCardProps) => { return (
    - -
    - image recipe -
    + + +
    + image recipe +
    +
    - -
    {title}
    + + +
    {title}
    +
    {description}
    diff --git a/src/utils/constanst.utils.ts b/src/utils/constanst.utils.ts index b1afabb7a..e85f5fdee 100644 --- a/src/utils/constanst.utils.ts +++ b/src/utils/constanst.utils.ts @@ -9,12 +9,18 @@ export const SOCIAL_LINKS = { export const ROUTE = { HOME: '/', - PRODUCTS: '/products', - PRODUCT_DETAIL: '/product', ABOUT: '/about', ACCOUNT: '/account', + + PRODUCTS: '/products', + PRODUCT_DETAIL: '/product', + + BLOGS: '/blogs', BLOG_DETAIL: '/blog', + RECIPES: '/recipes', + RECIPE_DETAIL: '/recipe', + BUSSINESS: '/bussiness', CONTACT: '/contact', CHECKOUT: '/checkout', @@ -22,7 +28,6 @@ export const ROUTE = { CUSTOMER_SERVICE: '/customer-service', TERM_CONDITION: '/term-condition', PRIVACY_POLICY: '/privacy-policy', - BLOGS: '/blogs', FORGOT_PASSWORD: '/forgot-password' } From 208ddd146f3cab88bbd56a0324a9b2cc1540d718 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:33:08 +0700 Subject: [PATCH 30/36] :wrench: config: (image) set minimumCacheTTL=60 :%s --- next.config.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/next.config.js b/next.config.js index 27bddfae6..3a0fee27b 100644 --- a/next.config.js +++ b/next.config.js @@ -26,6 +26,7 @@ module.exports = withCommerceConfig({ images: { // todo: replace domains for images domains: ['user-images.githubusercontent.com'], + minimumCacheTTL: 60, }, i18n: { locales: ['en-US', 'es'], @@ -46,10 +47,10 @@ module.exports = withCommerceConfig({ // For Vendure, rewrite the local api url to the remote (external) api url. This is required // to make the session cookies work. isVendure && - process.env.NEXT_PUBLIC_VENDURE_LOCAL_URL && { - source: `${process.env.NEXT_PUBLIC_VENDURE_LOCAL_URL}/:path*`, - destination: `${process.env.NEXT_PUBLIC_VENDURE_SHOP_API_URL}/:path*`, - }, + process.env.NEXT_PUBLIC_VENDURE_LOCAL_URL && { + source: `${process.env.NEXT_PUBLIC_VENDURE_LOCAL_URL}/:path*`, + destination: `${process.env.NEXT_PUBLIC_VENDURE_SHOP_API_URL}/:path*`, + }, ].filter(Boolean) }, }) From df47b3a6f4024361d29e05018eee31203fef2c86 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:36:54 +0700 Subject: [PATCH 31/36] :recycle: enhan: add prop blurDataURL to component ImgWithLink :%s --- src/components/common/ImgWithLink/ImgWithLink.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/common/ImgWithLink/ImgWithLink.tsx b/src/components/common/ImgWithLink/ImgWithLink.tsx index 62a30fa45..212e45583 100644 --- a/src/components/common/ImgWithLink/ImgWithLink.tsx +++ b/src/components/common/ImgWithLink/ImgWithLink.tsx @@ -6,16 +6,17 @@ import { BLUR_DATA_IMG } from 'src/utils/constanst.utils' export interface ImgWithLinkProps { src: string, alt?: string, + blurDataURL?: string, } -const ImgWithLink = ({ src, alt }: ImgWithLinkProps) => { +const ImgWithLink = ({ src, alt, blurDataURL = BLUR_DATA_IMG }: ImgWithLinkProps) => { return (
    {alt}
    ) From a99b4d5e2172a6ce973fdc06cc4311ec37f7566c Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 14:45:00 +0700 Subject: [PATCH 32/36] bugs: header animation --- src/components/common/Header/Header.tsx | 25 +++++++++---------- .../modules/home/HomeBanner/HomeBanner.tsx | 3 +-- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/components/common/Header/Header.tsx b/src/components/common/Header/Header.tsx index 1638b6571..eea61abb9 100644 --- a/src/components/common/Header/Header.tsx +++ b/src/components/common/Header/Header.tsx @@ -53,6 +53,17 @@ const Header = memo(({ toggleFilter }: props) => { return ( <> +
    + +
    +
    @@ -65,19 +76,7 @@ const Header = memo(({ toggleFilter }: props) => {
    - -
    - -
    - - + Date: Tue, 14 Sep 2021 14:57:31 +0700 Subject: [PATCH 33/36] :recycle: enhan: add noti link in header :%s --- .../common/Header/components/HeaderMenu/HeaderMenu.tsx | 4 ++++ .../components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx | 2 +- src/utils/constanst.utils.ts | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx b/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx index 4aefb954c..2e81a4acd 100644 --- a/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx +++ b/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx @@ -29,6 +29,10 @@ const HeaderMenu = memo(({ openModalAuthen, openModalInfo, toggleFilter, toggleC onClick: openModalInfo, name: 'Create User Info (Demo)', }, + { + link: ROUTE.NOTIFICATION, + name: 'Notifications', + }, { link: ROUTE.ACCOUNT, name: 'Account', diff --git a/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx b/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx index ee15ac2cf..7537f7b8e 100644 --- a/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx +++ b/src/components/common/Header/components/HeaderSubMenuMobile/HeaderSubMenuMobile.tsx @@ -25,7 +25,7 @@ const OPTION_MENU = [ isMarked: false, }, { - link: `${ROUTE.ACCOUNT}?${QUERY_KEY.TAB}=${ACCOUNT_TAB.NOTIFICATION}`, + link: ROUTE.NOTIFICATION, name: 'Notifications', icon: , isMarked: true, diff --git a/src/utils/constanst.utils.ts b/src/utils/constanst.utils.ts index e85f5fdee..90ac2a175 100644 --- a/src/utils/constanst.utils.ts +++ b/src/utils/constanst.utils.ts @@ -21,6 +21,7 @@ export const ROUTE = { RECIPES: '/recipes', RECIPE_DETAIL: '/recipe', + NOTIFICATION: '/notification', BUSSINESS: '/bussiness', CONTACT: '/contact', CHECKOUT: '/checkout', @@ -35,7 +36,6 @@ export const ACCOUNT_TAB = { CUSTOMER_INFO: '', ORDER: 'orders', FAVOURITE: 'wishlist', - NOTIFICATION: 'notification', } export const QUERY_KEY = { From 5ecc7d8e74e03b863752e8172ab2d093a2855796 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 15:07:42 +0700 Subject: [PATCH 34/36] :art: styles: home banner :%s --- src/components/common/Banner/Banner.tsx | 2 +- .../modules/home/HomeBanner/HomeBanner.module.scss | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/common/Banner/Banner.tsx b/src/components/common/Banner/Banner.tsx index 9b6b1099a..410fded77 100644 --- a/src/components/common/Banner/Banner.tsx +++ b/src/components/common/Banner/Banner.tsx @@ -8,7 +8,7 @@ interface Props { const option = { slidesPerView: 1, - breakpoints: {} + mode: 'free', } const Banner = memo(({ data }: Props) => { if (data.length === 1) { diff --git a/src/components/modules/home/HomeBanner/HomeBanner.module.scss b/src/components/modules/home/HomeBanner/HomeBanner.module.scss index a8b1b1d27..bb65a2549 100644 --- a/src/components/modules/home/HomeBanner/HomeBanner.module.scss +++ b/src/components/modules/home/HomeBanner/HomeBanner.module.scss @@ -31,11 +31,15 @@ width: min-content; color: var(--white); - font-size: 8.8rem; + font-size: 7rem; line-height: 8rem; letter-spacing: -0.03em; font-weight: bold; text-transform: uppercase; + + @screen 2xl { + line-height: 8rem; + } &::after { @apply absolute; content: ""; From 87c9a5ffc1687702ed611bca41fff986ebcf2605 Mon Sep 17 00:00:00 2001 From: lytrankieio123 Date: Tue, 14 Sep 2021 15:18:00 +0700 Subject: [PATCH 35/36] :bug: bug: useEffect in Scroll to Top :%s --- src/components/common/ScrollToTop/ScrollToTop.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/common/ScrollToTop/ScrollToTop.tsx b/src/components/common/ScrollToTop/ScrollToTop.tsx index d148c8937..eef74cb24 100644 --- a/src/components/common/ScrollToTop/ScrollToTop.tsx +++ b/src/components/common/ScrollToTop/ScrollToTop.tsx @@ -34,7 +34,7 @@ const ScrollToTop = ({ visibilityHeight=450 }: ScrollToTopProps) => { useEffect(() => { addEventScroll(); - }); + }, []); return (
    Date: Tue, 14 Sep 2021 15:29:19 +0700 Subject: [PATCH 36/36] :art: styles: box shadow header :%s --- src/components/common/Header/Header.module.scss | 16 ++++++++++++---- .../Header/components/HeaderMenu/HeaderMenu.tsx | 3 +-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/components/common/Header/Header.module.scss b/src/components/common/Header/Header.module.scss index 99cd29fe0..1a73bbae5 100644 --- a/src/components/common/Header/Header.module.scss +++ b/src/components/common/Header/Header.module.scss @@ -6,20 +6,28 @@ left: 0; z-index: 9999; margin-bottom: 3.2rem; - @screen md { - @apply relative; - } + &.full { @apply shadow-none; - border: 1px solid var(--border-line); } .menu { + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); padding-left: 3.2rem; padding-right: 3.2rem; } .logo { @apply font-logo; } + + @screen md { + @apply relative; + &.full { + border: 1px solid var(--border-line); + } + .menu { + @apply shadow-none; + } + } } .headerSticky { diff --git a/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx b/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx index 2e81a4acd..40b329ca8 100644 --- a/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx +++ b/src/components/common/Header/components/HeaderMenu/HeaderMenu.tsx @@ -1,5 +1,5 @@ -import classNames from 'classnames' import Link from 'next/link' +import { useRouter } from 'next/router' import { memo, useMemo } from 'react' import InputSearch from 'src/components/common/InputSearch/InputSearch' import MenuDropdown from 'src/components/common/MenuDropdown/MenuDropdown' @@ -7,7 +7,6 @@ import { IconBuy, IconFilter, IconHeart, IconHistory, IconUser } from 'src/compo import { ACCOUNT_TAB, QUERY_KEY, ROUTE } from 'src/utils/constanst.utils' import Logo from '../../../Logo/Logo' import s from './HeaderMenu.module.scss' -import { useRouter } from 'next/router' interface Props { children?: any, openModalAuthen: () => void,