From 0cf95e966d8481e08b61ae19ae99078e9763040c Mon Sep 17 00:00:00 2001 From: Tobias Liauw Date: Wed, 27 Mar 2024 18:50:39 +0100 Subject: [PATCH 1/7] Layoutchanges for Prod, Umbau routes und Navbar --- index.html | 3 +- package.json | 1 + pnpm-lock.yaml | 190 ++++++++++++++++++++++-- public/favicon.png | Bin 0 -> 59861 bytes public/peppy.old.png | Bin 0 -> 10311 bytes src/App.css | 35 ++++- src/Layout.tsx | 89 +---------- src/components/BalanceDisplay/index.tsx | 4 +- src/components/Navbar/nav-desktop.tsx | 25 ++++ src/components/Navbar/nav-mobile.tsx | 46 ++++++ src/components/Navbar/topbar.tsx | 22 +++ src/components/ui/carousel.tsx | 8 +- src/components/ui/slider.tsx | 3 +- src/routes.ts | 38 +++++ src/types.ts | 12 +- src/views/Exchange/index.tsx | 4 + src/views/GetStartedPage/index.tsx | 3 +- src/views/Pool/index.tsx | 12 +- 18 files changed, 378 insertions(+), 117 deletions(-) create mode 100644 public/favicon.png create mode 100644 public/peppy.old.png create mode 100644 src/components/Navbar/nav-desktop.tsx create mode 100644 src/components/Navbar/nav-mobile.tsx create mode 100644 src/components/Navbar/topbar.tsx create mode 100644 src/routes.ts diff --git a/index.html b/index.html index 9fb654a..be54e39 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,8 @@ - Vite + React + TS + + peppy.finance | perpetuals on shimmer
diff --git a/package.json b/package.json index 27f7ca4..89c3cea 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "react-dom": "^18.2.0", "react-router-dom": "^6.21.3", "react-ts-tradingview-widgets": "^1.2.3", + "react-use": "^17.5.0", "sonner": "^1.4.41", "tailwind-merge": "^2.1.0", "tailwindcss-animate": "^1.0.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a32e6cd..b49c0ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,6 +80,9 @@ dependencies: react-ts-tradingview-widgets: specifier: ^1.2.3 version: 1.2.4(react-dom@18.2.0)(react@18.2.0) + react-use: + specifier: ^17.5.0 + version: 17.5.0(react-dom@18.2.0)(react@18.2.0) sonner: specifier: ^1.4.41 version: 1.4.41(react-dom@18.2.0)(react@18.2.0) @@ -5259,6 +5262,10 @@ packages: '@types/istanbul-lib-report': 3.0.3 dev: false + /@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + dev: false + /@types/js-yaml@4.0.9: resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} dev: true @@ -6101,9 +6108,6 @@ packages: resolution: {integrity: sha512-GBryCiyl+taz5DPq0expxzfMVcrpKjWvEBSAqT1tPUSthnzOWnVF77XlUAYgFZqzPsEu9lQ1dHCdqZx7WWMCXA==} peerDependencies: '@web3modal/wallet': 4.1.1 - peerDependenciesMeta: - '@web3modal/siwe': - optional: true dependencies: '@web3modal/common': 4.1.1 '@web3modal/core': 4.1.1(@types/react@18.2.66)(react@18.2.0) @@ -6144,15 +6148,6 @@ packages: '@wagmi/connectors': '>=4.0.0' '@wagmi/core': '>=2.0.0' viem: '>=2.0.0' - peerDependenciesMeta: - '@web3modal/siwe': - optional: true - react: - optional: true - react-dom: - optional: true - vue: - optional: true dependencies: '@wagmi/connectors': 4.1.19(@types/react@18.2.66)(@wagmi/core@2.6.10)(react-dom@18.2.0)(react-native@0.73.6)(react@18.2.0)(typescript@5.4.2)(viem@2.9.3) '@wagmi/core': 2.6.10(@types/react@18.2.66)(react@18.2.0)(typescript@5.4.2)(viem@2.9.3) @@ -6227,6 +6222,10 @@ packages: tslib: 2.6.2 dev: true + /@xobotyi/scrollbar-width@1.9.5: + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + dev: false + /abitype@0.9.8(typescript@5.4.2): resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} peerDependencies: @@ -7163,6 +7162,12 @@ packages: resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==} dev: false + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + /core-js-compat@3.36.1: resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} dependencies: @@ -7255,6 +7260,20 @@ packages: optional: true dev: false + /css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + dependencies: + hyphenate-style-name: 1.0.4 + dev: false + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: false + /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -8104,7 +8123,6 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} @@ -8124,6 +8142,10 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} + dev: false + /fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} dependencies: @@ -8139,6 +8161,10 @@ packages: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} dev: false + /fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + dev: false + /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: @@ -8152,6 +8178,10 @@ packages: strnum: 1.0.5 dev: false + /fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + dev: false + /fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: @@ -8714,6 +8744,10 @@ packages: engines: {node: '>=16.17.0'} dev: false + /hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + dev: false + /i18next-browser-languagedetector@7.2.0: resolution: {integrity: sha512-U00DbDtFIYD3wkWsr2aVGfXGAj2TgnELzOX9qv8bT0aJtvPV9CRO77h+vgmHFBMe7LAxdwvT/7VkCWGya6L3tA==} dependencies: @@ -8794,6 +8828,13 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + dependencies: + css-in-js-utils: 3.1.0 + fast-loops: 1.1.3 + dev: false + /inquirer@8.2.6: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} @@ -9297,6 +9338,10 @@ packages: resolution: {integrity: sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA==} dev: true + /js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -9742,6 +9787,10 @@ packages: resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} dev: false + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: false + /memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} dev: false @@ -10146,6 +10195,24 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 + /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + css-tree: 1.1.3 + csstype: 3.1.3 + fastest-stable-stringify: 2.0.2 + inline-style-prefixer: 7.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + rtl-css-js: 1.16.1 + stacktrace-js: 2.0.2 + stylis: 4.3.1 + dev: false + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -11144,6 +11211,40 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' + dependencies: + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@types/js-cookie': 2.2.7 + '@xobotyi/scrollbar-width': 1.9.5 + copy-to-clipboard: 3.3.3 + fast-deep-equal: 3.1.3 + fast-shallow-equal: 1.0.0 + js-cookie: 2.2.1 + nano-css: 5.6.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-universal-interface: 0.6.2(react@18.2.0)(tslib@2.6.2) + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + set-harmonic-interval: 1.0.1 + throttle-debounce: 3.0.1 + ts-easing: 0.2.0 + tslib: 2.6.2 + dev: false + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -11307,6 +11408,10 @@ packages: /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + /resolve-from@3.0.0: resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} engines: {node: '>=4'} @@ -11405,6 +11510,12 @@ packages: fsevents: 2.3.3 dev: true + /rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + dependencies: + '@babel/runtime': 7.24.1 + dev: false + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -11468,6 +11579,11 @@ packages: loose-envify: 1.4.0 dev: false + /screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + dev: false + /scuid@1.1.0: resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==} dev: true @@ -11567,6 +11683,11 @@ packages: has-property-descriptors: 1.0.2 dev: true + /set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + dev: false + /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -11714,6 +11835,11 @@ packages: source-map: 0.6.1 dev: false + /source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + dev: false + /source-map@0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} @@ -11748,6 +11874,12 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: false + /stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + dependencies: + stackframe: 1.3.4 + dev: false + /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -11759,6 +11891,21 @@ packages: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: false + /stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + dependencies: + source-map: 0.5.6 + stackframe: 1.3.4 + dev: false + + /stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + dependencies: + error-stack-parser: 2.1.4 + stack-generator: 2.0.10 + stacktrace-gps: 3.1.2 + dev: false + /stacktrace-parser@0.1.10: resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} engines: {node: '>=6'} @@ -11912,6 +12059,10 @@ packages: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} dev: false + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + dev: false + /sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -12059,6 +12210,11 @@ packages: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: false + /throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + dev: false + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -12096,6 +12252,10 @@ packages: dependencies: is-number: 7.0.0 + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -12113,6 +12273,10 @@ packages: typescript: 5.4.2 dev: true + /ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + dev: false + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c275382aa64852d6156f530c0c5b43f7f64a9f31 GIT binary patch literal 59861 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%0A=Ey~#C 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 Z{Vz1*9&7WEk~aVV002ovPDHLkV1kAzCp`cF literal 0 HcmV?d00001 diff --git a/src/App.css b/src/App.css index 6d39268..8f34993 100644 --- a/src/App.css +++ b/src/App.css @@ -14,13 +14,44 @@ body { line-height: normal; /* TODO: DESKTOP: remove max-width */ - max-width: 460px; + max-width: 460px !important; } #root { margin: 0; height: 100%; - /* TODO: DESKTOP: remove max-width */ max-width: 460px; } + +#topbar { + max-width: 460px; +} +#content { + margin: 0px; + margin-top: 70px; + padding-top: 0px; + position: absolute; + top: 0; + max-width: 460px; +} +#cardFooter { + display:grid; +} + +@media screen and (min-width: 800px) { + #content { + margin: 0px; + padding-top:70px; + position: absolute; + top: 50%; + -ms-transform: translateY(-50%); + transform: translateY(-50%); + } +} + +@media screen and (max-width: 800px) { + #exchangeChart { + display:none; + } +} \ No newline at end of file diff --git a/src/Layout.tsx b/src/Layout.tsx index 113f7ab..331bf43 100644 --- a/src/Layout.tsx +++ b/src/Layout.tsx @@ -1,93 +1,16 @@ -import { useState } from 'react'; -import './App.css'; -import { Link, Outlet, useLocation } from 'react-router-dom'; -import { HamburgerMenuIcon } from '@radix-ui/react-icons'; -import { SheetContent, SheetHeader, SheetTitle, Sheet } from './components/ui/sheet'; +import { Outlet } from 'react-router-dom'; import { Toaster } from './components/ui/sonner'; -import classNames from 'classnames'; - -const Header = () => { - const [menuOpen, setMenuOpen] = useState(false); - const location = useLocation(); - - return ( -
- - setMenuOpen(true)} /> - - - Menu - -
- setMenuOpen(false)} - > - Homepage - - setMenuOpen(false)} - > - Get Started 🚀 - - setMenuOpen(false)} - > - Exchange - - setMenuOpen(false)} - > - Open Positions - - setMenuOpen(false)} - > - Closed Positions - - setMenuOpen(false)} - > - Pool - -
-
-
- -
- ); -}; +import { Topbar } from './components/Navbar/topbar'; export const Layout = () => { return (
-
-
+ +
+
+
); diff --git a/src/components/BalanceDisplay/index.tsx b/src/components/BalanceDisplay/index.tsx index 0cb2089..96d94a8 100644 --- a/src/components/BalanceDisplay/index.tsx +++ b/src/components/BalanceDisplay/index.tsx @@ -13,7 +13,7 @@ export function BalanceDisplay() { address: collateralTokenAddress, functionName: 'balanceOf', account: address, - args: [address], + args: [address as `0x${string}`], abi: [ { constant: true, @@ -32,7 +32,7 @@ export function BalanceDisplay() { } if (isPending) return
Loading...
; - + // @ts-ignore-error if (error) return
Error: {(error as BaseError).shortMessage || error.message}
; return
Balance: {balance?.toString()}
; diff --git a/src/components/Navbar/nav-desktop.tsx b/src/components/Navbar/nav-desktop.tsx new file mode 100644 index 0000000..d99d3b8 --- /dev/null +++ b/src/components/Navbar/nav-desktop.tsx @@ -0,0 +1,25 @@ +//📂./src/components/nav-desktop.tsx + +import { routes } from "../../routes"; + +export const NavDesktop = () => { + // lg:flex md:flex md:items-center gap-5 text-sm + return ( +
    + {routes.map((route) => { + const { href, title } = route; + return ( +
  • + + {title} + +
  • + ); + })} +
  • +
+ ); +}; diff --git a/src/components/Navbar/nav-mobile.tsx b/src/components/Navbar/nav-mobile.tsx new file mode 100644 index 0000000..3745963 --- /dev/null +++ b/src/components/Navbar/nav-mobile.tsx @@ -0,0 +1,46 @@ +import { useClickAway } from "react-use"; +import { useRef } from "react"; +import { useState } from 'react'; +import '../../App.css'; +import { Link, useLocation } from 'react-router-dom'; +import { HamburgerMenuIcon } from '@radix-ui/react-icons'; +import { SheetContent, SheetHeader, SheetTitle, Sheet } from '../ui/sheet'; +import classNames from 'classnames'; +import { routes } from "../../routes"; + +export const NavMobile = () => { + const [menuOpen, setMenuOpen] = useState(false); + const location = useLocation(); + const ref = useRef(null); + + useClickAway(ref, () => setMenuOpen(false)); + // lg:hidden md:hidden + return ( +
+ + setMenuOpen(true)} /> + + + Menu + +
+ {routes.map((route) => { + const { href, title,icon } = route; + return ( + setMenuOpen(false)} + > + {title} {icon} + + ); + })} +
+
+
+
+ ); +}; diff --git a/src/components/Navbar/topbar.tsx b/src/components/Navbar/topbar.tsx new file mode 100644 index 0000000..969cdc6 --- /dev/null +++ b/src/components/Navbar/topbar.tsx @@ -0,0 +1,22 @@ +import { NavMobile } from "./nav-mobile"; +// import { NavDesktop } from "./nav-desktop"; +//
+// +// +//
+ + +export const Topbar = () => { + return ( +
+ +
+ ); +}; diff --git a/src/components/ui/carousel.tsx b/src/components/ui/carousel.tsx index 0050f84..d64fad3 100644 --- a/src/components/ui/carousel.tsx +++ b/src/components/ui/carousel.tsx @@ -181,8 +181,8 @@ const CarouselPrevious = React.forwardRef, VariantProps { @@ -39,6 +39,7 @@ const Slider = React.forwardRef( return ( }", + icon: "" + }, + { + title: "Get Started", + href: "/get-started", + element: "{}", + icon: "🚀" + }, + { + title: "Exchange", + href: "/exchange", + element: "{}", + icon: "" + }, + { + title: "Open Positions", + href: "/open-positions", + element: "{}", + icon: "" + }, + { + title: "Closed Positions", + href: "/closed-positions", + element: "{}", + icon: "" + }, + { + title: "Pool", + href: "/pool", + element: "{}", + icon: "" + }, +]; diff --git a/src/types.ts b/src/types.ts index 10290a9..9c0c867 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,4 @@ -import { config } from './lib/wagmiConfig'; +// import { config } from './lib/wagmiConfig'; export enum Market { IOTAUSD = 'IOTAUSD', @@ -10,8 +10,8 @@ export enum Market { // SHIBUSD = 'SHIBUSD', } -declare module 'wagmi' { - interface Register { - config: typeof config; - } -} +// declare module 'wagmi' { +// interface Register { +// config: typeof config; +// } +// } diff --git a/src/views/Exchange/index.tsx b/src/views/Exchange/index.tsx index 72b8fc8..53d6492 100644 --- a/src/views/Exchange/index.tsx +++ b/src/views/Exchange/index.tsx @@ -89,6 +89,7 @@ export const Exchange = () => { address: collateralTokenAddress, abi: erc20Abi, functionName: 'balanceOf', + // @ts-ignore-error args: [address], }); @@ -96,6 +97,7 @@ export const Exchange = () => { address: collateralTokenAddress, abi: erc20Abi, functionName: 'allowance', + // @ts-ignore-error args: [address, tradePairAddress], }); @@ -209,6 +211,7 @@ export const Exchange = () => { address: tradePairAddress, abi: TradePairAbi, functionName: 'openPosition', + // @ts-ignore-error args: [parsedCollateral, BigInt(leverage * 1_000_000), direction, priceFeedUpdateData], value: 1n, }); @@ -414,6 +417,7 @@ export const Exchange = () => { diff --git a/src/views/Pool/index.tsx b/src/views/Pool/index.tsx index 4a85bbf..f5db116 100644 --- a/src/views/Pool/index.tsx +++ b/src/views/Pool/index.tsx @@ -106,7 +106,8 @@ export const Pool = () => { address: liquidityPoolAddress, abi: LiquidityPoolAbi, functionName: 'balanceOf', - args: [address], + // @ts-ignore-error + args: [address as `0x${string}`], }); // TODO: this should be throttled, e.g. via debounce @@ -129,21 +130,24 @@ export const Pool = () => { address: liquidityPoolAddress, abi: LiquidityPoolAbi, functionName: 'previewRedeem', - args: [ownedShares], + // @ts-ignore-error + args: [ownedShares as bigint], }); const { data: balance, refetch: refetchBalance } = useReadContract({ address: collateralTokenAddress, abi: erc20Abi, functionName: 'balanceOf', - args: [address], + // @ts-ignore-error + args: [address as `0x${string}`], }); const { data: allowance, refetch: refetchAllowance } = useReadContract({ address: collateralTokenAddress, abi: erc20Abi, functionName: 'allowance', - args: [address, liquidityPoolAddress], + // @ts-ignore-error + args: [address as `0x${string}`, liquidityPoolAddress], }); // TODO: batch this up via multicall or serve via custom API From 05cc58af5c49d643eb6f5b5655a1471bd6ee4195 Mon Sep 17 00:00:00 2001 From: Tobias Liauw Date: Wed, 27 Mar 2024 19:06:25 +0100 Subject: [PATCH 2/7] merged layout changes --- src/components/Navbar/topbar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Navbar/topbar.tsx b/src/components/Navbar/topbar.tsx index 969cdc6..108a6f4 100644 --- a/src/components/Navbar/topbar.tsx +++ b/src/components/Navbar/topbar.tsx @@ -8,7 +8,7 @@ import { NavMobile } from "./nav-mobile"; export const Topbar = () => { return ( -
+