From 9aab45481ecbecdf1dbc795aed50a76f7a241dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Jos=C3=A9=20Ram=C3=ADrez?= Date: Thu, 17 Oct 2024 16:28:04 -0300 Subject: [PATCH 01/13] build: remove deprecated @vercel/og dependency --- package.json | 1 - pnpm-lock.yaml | 137 ---------------------------- src/app/api/preview-image/route.tsx | 2 +- 3 files changed, 1 insertion(+), 139 deletions(-) diff --git a/package.json b/package.json index 13f10bb05..723604d25 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "@tanstack/react-query": "^5.56.2", "@typeform/embed-react": "^3.20.0", "@vercel/analytics": "^1.3.1", - "@vercel/og": "^0.6.3", "@web3modal/wagmi": "^5.1.9", "autoprefixer": "^10.4.20", "axios": "^1.7.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4415058f0..0b27c1997 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,9 +47,6 @@ importers: '@vercel/analytics': specifier: ^1.3.1 version: 1.3.1(next@14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) - '@vercel/og': - specifier: ^0.6.3 - version: 0.6.3 '@web3modal/wagmi': specifier: ^5.1.9 version: 5.1.9(tsbch5ickwrqy2b74iufridj64) @@ -2548,10 +2545,6 @@ packages: '@types/react': optional: true - '@resvg/resvg-wasm@2.4.0': - resolution: {integrity: sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg==} - engines: {node: '>= 10'} - '@rollup/plugin-commonjs@26.0.1': resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -2733,11 +2726,6 @@ packages: peerDependencies: webpack: '>=4.40.0' - '@shuding/opentype.js@1.4.0-beta.0': - resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} - engines: {node: '>= 8.0.0'} - hasBin: true - '@sideway/address@4.1.5': resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} @@ -3253,10 +3241,6 @@ packages: react: optional: true - '@vercel/og@0.6.3': - resolution: {integrity: sha512-aoCrC9FqkeA+WEEb9CwSmjD0rGlFeNqbUsI41JPmKWR9Hx6FFn86tvH96O5HZMF6VAXTGHxa3nPH3BokROpdgA==} - engines: {node: '>=16'} - '@wagmi/connectors@4.3.8': resolution: {integrity: sha512-L+v/q78p2kbF5YX/iDwOZ1PjncAE8FeroaHJnS4UGM25z/3Jqcr03AqziC776W46dDPoeZaVmHMBFcBxbJJ5HA==} peerDependencies: @@ -3797,10 +3781,6 @@ packages: base-x@4.0.0: resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} - base64-js@0.0.8: - resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} - engines: {node: '>= 0.4'} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -3968,9 +3948,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - camelize@1.0.1: - resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001662: resolution: {integrity: sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA==} @@ -4296,22 +4273,9 @@ packages: uWebSockets.js: optional: true - css-background-parser@0.1.0: - resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} - css-box-model@1.2.1: resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} - css-box-shadow@1.0.0-3: - resolution: {integrity: sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==} - - css-color-keywords@1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} - engines: {node: '>=4'} - - css-to-react-native@3.2.0: - resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -4530,9 +4494,6 @@ packages: elliptic@6.5.7: resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} - emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -4936,9 +4897,6 @@ packages: fflate@0.6.10: resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} - fflate@0.7.4: - resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} - file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5283,10 +5241,6 @@ packages: hermes-parser@0.23.1: resolution: {integrity: sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==} - hex-rgb@4.3.0: - resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} - engines: {node: '>=6'} - hey-listen@1.0.8: resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} @@ -5940,9 +5894,6 @@ packages: resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} - linebreak@1.1.0: - resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} - lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -6689,16 +6640,10 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} hasBin: true - pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-css-color@0.2.1: - resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} - parse-headers@2.0.5: resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} @@ -7493,10 +7438,6 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - satori@0.10.9: - resolution: {integrity: sha512-XU9EELUEZuioT4acLIpCXxHcFzrsC8muvg0MY28d+TlqwxbkTzBmWbw+3+hnCzXT7YZ0Qm8k3eXktDaEu+qmEw==} - engines: {node: '>=16'} - scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -7790,9 +7731,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.codepointat@0.2.1: - resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} - string.prototype.includes@2.0.0: resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} @@ -8033,9 +7971,6 @@ packages: resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} engines: {node: '>=0.10.0'} - tiny-inflate@1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -8201,9 +8136,6 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - unicode-trie@2.0.0: - resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} - unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -12101,8 +12033,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.8 - '@resvg/resvg-wasm@2.4.0': {} - '@rollup/plugin-commonjs@26.0.1(rollup@3.29.4)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@3.29.4) @@ -12392,11 +12322,6 @@ snapshots: - encoding - supports-color - '@shuding/opentype.js@1.4.0-beta.0': - dependencies: - fflate: 0.7.4 - string.prototype.codepointat: 0.2.1 - '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 @@ -13092,12 +13017,6 @@ snapshots: next: 14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - '@vercel/og@0.6.3': - dependencies: - '@resvg/resvg-wasm': 2.4.0 - satori: 0.10.9 - yoga-wasm-web: 0.3.3 - '@wagmi/connectors@4.3.8(@types/react@18.3.8)(@wagmi/core@2.9.6(@tanstack/query-core@5.56.2)(@types/react@18.3.8)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.10(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-i18next@13.5.0(i18next@22.5.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.8)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10))(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.8)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@3.29.4)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.10(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)': dependencies: '@coinbase/wallet-sdk': 3.9.1 @@ -14245,8 +14164,6 @@ snapshots: base-x@4.0.0: {} - base64-js@0.0.8: {} - base64-js@1.5.1: {} bcrypt-pbkdf@1.0.2: @@ -14453,8 +14370,6 @@ snapshots: camelcase@6.3.0: {} - camelize@1.0.1: {} - caniuse-lite@1.0.30001662: {} caseless@0.12.0: {} @@ -14796,22 +14711,10 @@ snapshots: crossws@0.2.4: {} - css-background-parser@0.1.0: {} - css-box-model@1.2.1: dependencies: tiny-invariant: 1.3.3 - css-box-shadow@1.0.0-3: {} - - css-color-keywords@1.0.0: {} - - css-to-react-native@3.2.0: - dependencies: - camelize: 1.0.1 - css-color-keywords: 1.0.0 - postcss-value-parser: 4.2.0 - cssesc@3.0.0: {} csstype@3.1.3: {} @@ -15016,8 +14919,6 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - emoji-regex@10.4.0: {} - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -15699,8 +15600,6 @@ snapshots: fflate@0.6.10: {} - fflate@0.7.4: {} - file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -16087,8 +15986,6 @@ snapshots: dependencies: hermes-estree: 0.23.1 - hex-rgb@4.3.0: {} - hey-listen@1.0.8: {} hmac-drbg@1.0.1: @@ -16761,11 +16658,6 @@ snapshots: lilconfig@3.1.2: {} - linebreak@1.1.0: - dependencies: - base64-js: 0.0.8 - unicode-trie: 2.0.0 - lines-and-columns@1.2.4: {} listhen@1.7.2: @@ -17686,17 +17578,10 @@ snapshots: - bluebird - supports-color - pako@0.2.9: {} - parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-css-color@0.2.1: - dependencies: - color-name: 1.1.4 - hex-rgb: 4.3.0 - parse-headers@2.0.5: {} parse-json@4.0.0: @@ -18510,19 +18395,6 @@ snapshots: safer-buffer@2.1.2: {} - satori@0.10.9: - dependencies: - '@shuding/opentype.js': 1.4.0-beta.0 - css-background-parser: 0.1.0 - css-box-shadow: 1.0.0-3 - css-to-react-native: 3.2.0 - emoji-regex: 10.4.0 - escape-html: 1.0.3 - linebreak: 1.1.0 - parse-css-color: 0.2.1 - postcss-value-parser: 4.2.0 - yoga-wasm-web: 0.3.3 - scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -18873,8 +18745,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.codepointat@0.2.1: {} - string.prototype.includes@2.0.0: dependencies: define-properties: 1.2.1 @@ -19213,8 +19083,6 @@ snapshots: timed-out@4.0.1: {} - tiny-inflate@1.0.3: {} - tiny-invariant@1.3.3: {} tmpl@1.0.5: {} @@ -19384,11 +19252,6 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} - unicode-trie@2.0.0: - dependencies: - pako: 0.2.9 - tiny-inflate: 1.0.3 - unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 diff --git a/src/app/api/preview-image/route.tsx b/src/app/api/preview-image/route.tsx index dcb29da58..c58fedfc1 100644 --- a/src/app/api/preview-image/route.tsx +++ b/src/app/api/preview-image/route.tsx @@ -1,5 +1,5 @@ /* eslint-disable @next/next/no-img-element */ -import { ImageResponse } from '@vercel/og' +import { ImageResponse } from 'next/og' import { LinkPreviewImg } from '@/components/Global/ImageGeneration/LinkPreview' From 16335f02ec11f404553684c1374735e14d5543b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Jos=C3=A9=20Ram=C3=ADrez?= Date: Thu, 17 Oct 2024 16:34:13 -0300 Subject: [PATCH 02/13] perf: smaller social preview images 1600x800 is excessive for social previews 400x200 is more reasonable (still on the big side) From 3000ms to 300ms on local (only image generation) --- src/app/api/preview-image/route.tsx | 4 +- src/app/claim/page.tsx | 27 ++++------ .../Global/ImageGeneration/LinkPreview.tsx | 50 ++++++++++--------- 3 files changed, 39 insertions(+), 42 deletions(-) diff --git a/src/app/api/preview-image/route.tsx b/src/app/api/preview-image/route.tsx index c58fedfc1..418287015 100644 --- a/src/app/api/preview-image/route.tsx +++ b/src/app/api/preview-image/route.tsx @@ -21,8 +21,8 @@ export async function GET(request: Request) { return new ImageResponse( , { - width: 1600, - height: 800, + width: 400, + height: 200, } ) } diff --git a/src/app/claim/page.tsx b/src/app/claim/page.tsx index 3e9524fd9..682d2d6f5 100644 --- a/src/app/claim/page.tsx +++ b/src/app/claim/page.tsx @@ -1,6 +1,7 @@ import * as components from '@/components' import Layout from '@/components/Global/Layout' -import { Metadata, ResolvingMetadata } from 'next' +import { Metadata } from 'next' +import { headers } from 'next/headers' import { getLinkDetails } from '@squirrel-labs/peanut-sdk' import * as utils from '@/utils' @@ -28,38 +29,32 @@ function createURL(host: string, searchParams: { [key: string]: string | string[ return `${host}?${queryParams.toString()}` } -export async function generateMetadata({ params, searchParams }: Props, parent: ResolvingMetadata): Promise { +export async function generateMetadata({ searchParams }: Props): Promise { let title = 'Claim your tokens!' - // const host = headers().get('host') || '' - const host = 'https://peanut.to' + let host = headers().get('host') || 'peanut.to' + host = `${process.env.NODE_ENV === 'development' ? 'http://' : 'https://'}${host}` let linkDetails = undefined try { const url = createURL(host, searchParams) linkDetails = await getLinkDetails({ link: url }) if (!linkDetails.claimed) { title = - 'You received ' + - (Number(linkDetails.tokenAmount) < 0.01 - ? 'some ' - : utils.formatAmount(Number(linkDetails.tokenAmount)) + ' in ') + - linkDetails.tokenSymbol + - '!' + 'You received ' + + (Number(linkDetails.tokenAmount) < 0.01 + ? 'some ' + : utils.formatAmount(Number(linkDetails.tokenAmount)) + ' in ') + + linkDetails.tokenSymbol + + '!' } else { title = 'This link has been claimed' } - } catch (e) { console.log('error: ', e) } let previewUrl = '/claim-metadata-img.jpg' if (linkDetails) { - // const tokenPrice = await utils.fetchTokenPrice( - // linkDetails.tokenAddress.toLowerCase(), - // linkDetails.chainId, - // host - // ) previewUrl = `${host}/api/preview-image?amount=${linkDetails.tokenAmount}&chainId=${linkDetails.chainId}&tokenAddress=${linkDetails.tokenAddress}&tokenSymbol=${linkDetails.tokenSymbol}&senderAddress=${linkDetails.senderAddress}&tokenPrice=${undefined}` } return { diff --git a/src/components/Global/ImageGeneration/LinkPreview.tsx b/src/components/Global/ImageGeneration/LinkPreview.tsx index 2c1ab18f1..d0cf45d55 100644 --- a/src/components/Global/ImageGeneration/LinkPreview.tsx +++ b/src/components/Global/ImageGeneration/LinkPreview.tsx @@ -21,22 +21,23 @@ export function LinkPreviewImg({ ?.tokens.find((token) => utils.areTokenAddressesEqual(token.address, tokenAddress))?.logoURI const chainImage = consts.supportedPeanutChains.find((chain) => chain.chainId === chainId)?.icon.url - const bgImageUrl = `https://peanut.to/bg.svg` + const bgImageUrl = 'https://peanut.to/bg.svg' const peanutImageUrl = 'https://peanut.to/peanutman-logo.svg' + console.log('6', Date.now()) return (
-