From abfa14bf4336d515e0bed53760f6920fcb836e82 Mon Sep 17 00:00:00 2001 From: Vitali Karpuk Date: Mon, 18 Dec 2023 18:08:08 +0300 Subject: [PATCH] wallet operations popup --- apps/ui/public/assets/MinaLogo.svg | 46 ++++ apps/ui/public/fonts.css | 33 +++ apps/ui/public/fonts/RobotoMono.ttf | Bin 0 -> 87236 bytes apps/ui/public/typography.css | 31 +++ apps/ui/src/comman/constants.ts | 1 + .../ui/src/components/atoms/button/button.tsx | 18 ++ .../components/atoms/button/index.module.css | 21 ++ apps/ui/src/components/atoms/button/index.ts | 1 + apps/ui/src/components/atoms/input/index.ts | 1 + apps/ui/src/components/atoms/input/input.tsx | 11 + .../src/components/atoms/loader/constants.ts | 11 + apps/ui/src/components/atoms/loader/index.ts | 1 + .../ui/src/components/atoms/loader/loader.tsx | 66 ++++++ apps/ui/src/components/atoms/logo/index.ts | 1 + apps/ui/src/components/atoms/logo/logo.tsx | 8 + .../connectWalletButton/buttonWithAddress.tsx | 72 ++++++ .../connectWalletButton/connectButton.tsx | 15 ++ .../connectWalletButton.tsx | 63 +++++ .../molecules/connectWalletButton/hellper.ts | 15 ++ .../connectWalletButton/img/auro.png | Bin 0 -> 16216 bytes .../connectWalletButton/img/copy.svg | 3 + .../connectWalletButton/img/disconnect.svg | 10 + .../connectWalletButton/img/profile.svg | 11 + .../connectWalletButton/img/wallet.svg | 3 + .../connectWalletButton/index.module.css | 58 +++++ .../molecules/connectWalletButton/index.ts | 1 + .../WalletConnectPopUp.module.css | 220 ++++++++++++++++++ .../walletConnectPopUp/core.tsx | 150 ++++++++++++ .../walletConnectPopUp/header.tsx | 30 +++ .../walletConnectPopUp/img/CloseIcon.svg | 10 + .../walletConnectPopUp/img/Loader.gif | Bin 0 -> 125243 bytes .../walletConnectPopUp/img/Loader.svg | 6 + .../walletConnectPopUp/img/Triangle.svg | 5 + .../walletConnectPopUp/img/failed.svg | 3 + .../walletConnectPopUp/img/headerBG.png | Bin 0 -> 50482 bytes .../walletConnectPopUp/img/success.png | Bin 0 -> 7287 bytes .../walletConnectPopUp/index.tsx | 23 ++ .../walletConnectPopUp/mobileHeader.tsx | 23 ++ .../screens/Screens.module.css | 220 ++++++++++++++++++ .../screens/connectionScreen.tsx | 38 +++ .../walletConnectPopUp/screens/failScreen.tsx | 47 ++++ .../screens/installScreen.tsx | 50 ++++ .../screens/successScreen.tsx | 33 +++ .../walletConnectPopUp/screens/walletList.tsx | 69 ++++++ .../walletConnectPopUp/stepProgress.tsx | 56 +++++ .../walletConnectPopUp/wallet.tsx | 22 ++ .../DropdownWrapper.module.css | 1 + .../molecules/dropdownWrapper/index.tsx | 19 +- .../molecules/popupOverlay/index.tsx | 6 +- .../molecules/staticEllipse/index.module.css | 31 +++ .../molecules/staticEllipse/index.ts | 1 + .../molecules/staticEllipse/staticEllipse.tsx | 66 ++++++ .../organisms/pageHeader/index.module.css | 4 + .../components/organisms/pageHeader/index.ts | 1 + .../organisms/pageHeader/pageHeader.tsx | 13 ++ apps/ui/src/hooks/useAuroWallet.ts | 26 ++- apps/ui/src/hooks/useAuroWalletCore.ts | 17 +- apps/ui/src/hooks/useKeyPress.ts | 14 ++ apps/ui/src/hooks/useMedia.ts | 56 ++--- apps/ui/src/pages/_app.tsx | 10 +- apps/ui/src/pages/index.tsx | 4 + 61 files changed, 1718 insertions(+), 57 deletions(-) create mode 100644 apps/ui/public/assets/MinaLogo.svg create mode 100644 apps/ui/public/fonts/RobotoMono.ttf create mode 100644 apps/ui/src/comman/constants.ts create mode 100644 apps/ui/src/components/atoms/button/button.tsx create mode 100644 apps/ui/src/components/atoms/button/index.module.css create mode 100644 apps/ui/src/components/atoms/button/index.ts create mode 100644 apps/ui/src/components/atoms/input/index.ts create mode 100644 apps/ui/src/components/atoms/input/input.tsx create mode 100644 apps/ui/src/components/atoms/loader/constants.ts create mode 100644 apps/ui/src/components/atoms/loader/index.ts create mode 100644 apps/ui/src/components/atoms/loader/loader.tsx create mode 100644 apps/ui/src/components/atoms/logo/index.ts create mode 100644 apps/ui/src/components/atoms/logo/logo.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/buttonWithAddress.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/connectButton.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/connectWalletButton.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/hellper.ts create mode 100644 apps/ui/src/components/molecules/connectWalletButton/img/auro.png create mode 100644 apps/ui/src/components/molecules/connectWalletButton/img/copy.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/img/disconnect.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/img/profile.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/img/wallet.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/index.module.css create mode 100644 apps/ui/src/components/molecules/connectWalletButton/index.ts create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/WalletConnectPopUp.module.css create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/core.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/header.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/CloseIcon.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Loader.gif create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Loader.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Triangle.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/failed.svg create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/headerBG.png create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/success.png create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/index.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/mobileHeader.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/Screens.module.css create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/connectionScreen.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/failScreen.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/installScreen.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/successScreen.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/walletList.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/stepProgress.tsx create mode 100644 apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/wallet.tsx create mode 100644 apps/ui/src/components/molecules/staticEllipse/index.module.css create mode 100644 apps/ui/src/components/molecules/staticEllipse/index.ts create mode 100644 apps/ui/src/components/molecules/staticEllipse/staticEllipse.tsx create mode 100644 apps/ui/src/components/organisms/pageHeader/index.module.css create mode 100644 apps/ui/src/components/organisms/pageHeader/index.ts create mode 100644 apps/ui/src/components/organisms/pageHeader/pageHeader.tsx create mode 100644 apps/ui/src/hooks/useKeyPress.ts diff --git a/apps/ui/public/assets/MinaLogo.svg b/apps/ui/public/assets/MinaLogo.svg new file mode 100644 index 0000000..e5df4d0 --- /dev/null +++ b/apps/ui/public/assets/MinaLogo.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/ui/public/fonts.css b/apps/ui/public/fonts.css index 4a15e23..2eb7173 100644 --- a/apps/ui/public/fonts.css +++ b/apps/ui/public/fonts.css @@ -26,10 +26,43 @@ font-style: normal; } +@font-face { + font-family: 'Robot Mono'; + src: url('./fonts/RobotoMono.ttf') format('truetype'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Robot Mono Medium'; + src: url('./fonts/RobotoMono.ttf') format('truetype'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'Robot Mono Semi Bold'; + src: url('./fonts/RobotoMono.ttf') format('truetype'); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: 'Robot Mono Bold'; + src: url('./fonts/RobotoMono.ttf') format('truetype'); + font-weight: 700; + font-style: normal; +} + :root { --ff--replacement-font: Arial, sans-serif; --ff--inter-regular: Inter, var(--ff--replacement-font); --ff--inter-bold: Inter Bold, var(--ff--replacement-font); --ff--inter-medium: Inter Medium, var(--ff--replacement-font); --ff--inter-semi-bold: Inter Semi Bold, var(--ff--replacement-font); + + --ff--robot-regular: Robot Mono, var(--ff--replacement-font); + --ff--robot-medium: Robot Mono Medium, var(--ff--replacement-font); + --ff--robot-semi-bold: Robot Mono Semi Bold, var(--ff--replacement-font); + --ff--robot-bold: Robot Mono Bold, var(--ff--replacement-font); } diff --git a/apps/ui/public/fonts/RobotoMono.ttf b/apps/ui/public/fonts/RobotoMono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6df2b253603094de7f39886aae03181c686e375b GIT binary patch literal 87236 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 WiD&}1U9w};%2Kl9!gJKh^8W$jCY;;= literal 0 HcmV?d00001 diff --git a/apps/ui/public/typography.css b/apps/ui/public/typography.css index 12fc1fa..ba55b0b 100644 --- a/apps/ui/public/typography.css +++ b/apps/ui/public/typography.css @@ -35,3 +35,34 @@ color: var(--col--link); } +.t-robot-regular { + font-family: var(--ff--robot-regular); + font-size: 14px; + line-height: 133%; + font-weight: 400; + color: var(--col--dark); +} + +.t-robot-medium { + font-family: var(--ff--robot-medium); + font-size: 14px; + line-height: 133%; + font-weight: 500; + color: var(--col--dark); +} + +.t-robot-semi-bold { + font-family: var(--ff--robot-semi-bold); + font-size: 14px; + line-height: 133%; + font-weight: 600; + color: var(--col--dark); +} + +.t-robot-bold { + font-family: var(--ff--robot-bold); + font-size: 14px; + line-height: 133%; + font-weight: 700; + color: var(--col--dark); +} diff --git a/apps/ui/src/comman/constants.ts b/apps/ui/src/comman/constants.ts new file mode 100644 index 0000000..a4d6913 --- /dev/null +++ b/apps/ui/src/comman/constants.ts @@ -0,0 +1 @@ +export const NETWORK = 'testworld'; diff --git a/apps/ui/src/components/atoms/button/button.tsx b/apps/ui/src/components/atoms/button/button.tsx new file mode 100644 index 0000000..3e0a0e4 --- /dev/null +++ b/apps/ui/src/components/atoms/button/button.tsx @@ -0,0 +1,18 @@ +import classNames from 'classnames'; +import style from './index.module.css'; + +type Button = { + text: string; + onClick: () => void; + className?: string; +}; + +const Button = ({ text, onClick, className }: Button): JSX.Element => { + return ( + + ); +}; + +export default Button; diff --git a/apps/ui/src/components/atoms/button/index.module.css b/apps/ui/src/components/atoms/button/index.module.css new file mode 100644 index 0000000..b1b1d5e --- /dev/null +++ b/apps/ui/src/components/atoms/button/index.module.css @@ -0,0 +1,21 @@ +.button { + padding: 0 32px; + height: 34px; + border-radius: 7px; + line-height: 20px; + background-color: #eef1ff; + outline: none !important; + border: none; + display: flex; + align-items: center; + justify-content: center; + transition: all 300ms ease; + user-select: none; + border: 1px solid rgb(89, 127, 255); + color: #597fff; + cursor: pointer; +} + +.button:hover { + background: #e8ecfa; +} diff --git a/apps/ui/src/components/atoms/button/index.ts b/apps/ui/src/components/atoms/button/index.ts new file mode 100644 index 0000000..31d66cb --- /dev/null +++ b/apps/ui/src/components/atoms/button/index.ts @@ -0,0 +1 @@ +export { default as Button } from './button'; diff --git a/apps/ui/src/components/atoms/input/index.ts b/apps/ui/src/components/atoms/input/index.ts new file mode 100644 index 0000000..3f24eca --- /dev/null +++ b/apps/ui/src/components/atoms/input/index.ts @@ -0,0 +1 @@ +export { default as Input } from './input'; diff --git a/apps/ui/src/components/atoms/input/input.tsx b/apps/ui/src/components/atoms/input/input.tsx new file mode 100644 index 0000000..b5aec75 --- /dev/null +++ b/apps/ui/src/components/atoms/input/input.tsx @@ -0,0 +1,11 @@ +type InputProps = { + onChange: () => void; + placeholder: string; + value: string; +}; + +const Input = ({ onChange, placeholder, value }: InputProps): JSX.Element => { + return ; +}; + +export default Input; diff --git a/apps/ui/src/components/atoms/loader/constants.ts b/apps/ui/src/components/atoms/loader/constants.ts new file mode 100644 index 0000000..525bc93 --- /dev/null +++ b/apps/ui/src/components/atoms/loader/constants.ts @@ -0,0 +1,11 @@ +export const colorConfig = { + blue: [ + 'rgba(222, 229, 255, 1)', + 'rgba(189, 204, 255, 1)', + 'rgba(155, 178, 255, 1)', + 'rgba(122, 153, 255, 1)', + 'rgba(89, 127, 255, 1)', + ], +}; + +export const disabledColor = 'rgba(232, 233, 235, 1)'; diff --git a/apps/ui/src/components/atoms/loader/index.ts b/apps/ui/src/components/atoms/loader/index.ts new file mode 100644 index 0000000..98a69d9 --- /dev/null +++ b/apps/ui/src/components/atoms/loader/index.ts @@ -0,0 +1 @@ +export { default as Loader } from './loader'; diff --git a/apps/ui/src/components/atoms/loader/loader.tsx b/apps/ui/src/components/atoms/loader/loader.tsx new file mode 100644 index 0000000..6c55217 --- /dev/null +++ b/apps/ui/src/components/atoms/loader/loader.tsx @@ -0,0 +1,66 @@ +import React from 'react'; +import { colorConfig, disabledColor } from './constants'; + +type LoaderProps = { + label?: string; + disabled?: boolean; + dotCount?: number; + radius?: number; + gap?: number; + duration?: number; +}; +const Loader = ({ label, disabled, dotCount = 5, radius = 3, gap = 8, duration = 2000 }: LoaderProps): JSX.Element => { + const r = radius; + const g = gap; + const colors = colorConfig.blue; + + const getCX = (r, g, i) => r + (r * 2 + g) * i; + const width = getCX(r, g, dotCount - 1) + r; + + const getCircles = (count) => { + const arr = []; + + for (let i = 0; i < count; i++) { + let values = []; + for (let index = 0; index < count * 2 - 1; index++) { + values.push(index < i || index > count + i - 1 ? 0 : 1); + } + values = [0, ...values, 0]; + arr.push( + + {!disabled && ( + + )} + + ); + } + return arr; + }; + + return ( + + {getCircles(dotCount)} + + ); +}; + +export default Loader; diff --git a/apps/ui/src/components/atoms/logo/index.ts b/apps/ui/src/components/atoms/logo/index.ts new file mode 100644 index 0000000..4c8ef95 --- /dev/null +++ b/apps/ui/src/components/atoms/logo/index.ts @@ -0,0 +1 @@ +export { default as Logo } from './logo'; diff --git a/apps/ui/src/components/atoms/logo/logo.tsx b/apps/ui/src/components/atoms/logo/logo.tsx new file mode 100644 index 0000000..e6e0248 --- /dev/null +++ b/apps/ui/src/components/atoms/logo/logo.tsx @@ -0,0 +1,8 @@ +import Image from 'next/image'; +import logo from '../../../../public/assets/MinaLogo.svg'; + +const Logo = ({ className }: { className?: string }) => { + return Mina; +}; + +export default Logo; diff --git a/apps/ui/src/components/molecules/connectWalletButton/buttonWithAddress.tsx b/apps/ui/src/components/molecules/connectWalletButton/buttonWithAddress.tsx new file mode 100644 index 0000000..eac5953 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/buttonWithAddress.tsx @@ -0,0 +1,72 @@ +import Image from 'next/image'; +import auroIcon from './img/auro.png'; +import { StaticEllipse } from '../staticEllipse'; +import disconnect from './img/disconnect.svg'; +import profile from './img/profile.svg'; +import copy from './img/copy.svg'; + +import style from './index.module.css'; +import DropdownWrapper from '../dropdownWrapper'; +import { useRef, useState } from 'react'; +import classNames from 'classnames'; +import { useRouter } from 'next/router'; + +const ButtonWithAddress = ({ address, onDisconnect }: { address: string; onDisconnect: () => void }) => { + const [isShowDropdown, setIsShowDropdown] = useState(false); + const handleCLick = () => { + setIsShowDropdown(!isShowDropdown); + }; + const refTest = useRef(); + const router = useRouter(); + + return ( + <> +
+ + + setIsShowDropdown(false)} + parentRef={refTest} + minWidth="185px" + > +
{ + navigator.clipboard.writeText(address); + setIsShowDropdown(false); + }} + > + + Copy address +
+
{ + setIsShowDropdown(false); + router.push('https://minascan.io/testworld/account/' + address); + }} + > + + Profile +
+ {onDisconnect && ( +
{ + onDisconnect(); + setIsShowDropdown(false); + }} + > + + Disconnect +
+ )} +
+
+ + ); +}; + +export default ButtonWithAddress; diff --git a/apps/ui/src/components/molecules/connectWalletButton/connectButton.tsx b/apps/ui/src/components/molecules/connectWalletButton/connectButton.tsx new file mode 100644 index 0000000..29f453e --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/connectButton.tsx @@ -0,0 +1,15 @@ +import Image from 'next/image'; +import WalletIcon from './img/wallet.svg'; +import style from './index.module.css'; +import classNames from 'classnames'; + +const ConnectButton = ({ onClick }: { onClick: () => void }) => { + return ( +
+ +

Connect

+
+ ); +}; + +export default ConnectButton; diff --git a/apps/ui/src/components/molecules/connectWalletButton/connectWalletButton.tsx b/apps/ui/src/components/molecules/connectWalletButton/connectWalletButton.tsx new file mode 100644 index 0000000..f151eb9 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/connectWalletButton.tsx @@ -0,0 +1,63 @@ +import { useState } from 'react'; +import useAuroWallet from '../../../hooks/useAuroWallet'; +import classNames from 'classnames'; + +import style from './index.module.css'; +import ButtonWithAddress from './buttonWithAddress'; +import ConnectButton from './connectButton'; +import WalletConnectPopUp from './walletConnectPopUp'; +import getWalletConfig from './hellper'; + +const ConnectWalletButton = () => { + const [showPopup, setShowPopup] = useState(false); + + const { + accountId, + connectMessage, + actions: { onConnectClick, resetConnectMessage, onDisconnectClick }, + } = useAuroWallet(); + + const walletName = accountId ? 'Auro Wallet' : null; + + const closeHandler = () => { + resetConnectMessage(); + setShowPopup(false); + }; + + const address = accountId?.[0]; + + const handleConnect = () => { + setShowPopup(true); + }; + + return ( +
+
+ {address ? ( + { + await onDisconnectClick(); + }} + /> + ) : ( + + )} +
+ console.log(data)} + /> +
+ ); +}; + +export default ConnectWalletButton; diff --git a/apps/ui/src/components/molecules/connectWalletButton/hellper.ts b/apps/ui/src/components/molecules/connectWalletButton/hellper.ts new file mode 100644 index 0000000..93c8382 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/hellper.ts @@ -0,0 +1,15 @@ +import auroIcon from './img/auro.png'; + +const getWalletConfig = () => [ + { + // eslint-disable-next-line valid-typeof + installed: typeof window !== 'undefined' && window['mina']?.isAuro, + name: 'Auro Wallet', + icon: auroIcon, + downloadUrl: { + browserExtension: 'https://chrome.google.com/webstore/detail/auro-wallet/cnmamaachppnkjgnildpdmkaakejnhae', + }, + }, +]; + +export default getWalletConfig; diff --git a/apps/ui/src/components/molecules/connectWalletButton/img/auro.png b/apps/ui/src/components/molecules/connectWalletButton/img/auro.png new file mode 100644 index 0000000000000000000000000000000000000000..ad49b65b4f847c05dda9a9e8da72d3c40046a77b GIT binary patch literal 16216 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 literal 0 HcmV?d00001 diff --git a/apps/ui/src/components/molecules/connectWalletButton/img/copy.svg b/apps/ui/src/components/molecules/connectWalletButton/img/copy.svg new file mode 100644 index 0000000..a117327 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/img/copy.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/img/disconnect.svg b/apps/ui/src/components/molecules/connectWalletButton/img/disconnect.svg new file mode 100644 index 0000000..557a96c --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/img/disconnect.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/img/profile.svg b/apps/ui/src/components/molecules/connectWalletButton/img/profile.svg new file mode 100644 index 0000000..a82d1ce --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/img/profile.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/img/wallet.svg b/apps/ui/src/components/molecules/connectWalletButton/img/wallet.svg new file mode 100644 index 0000000..43fc939 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/img/wallet.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/index.module.css b/apps/ui/src/components/molecules/connectWalletButton/index.module.css new file mode 100644 index 0000000..a06c061 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/index.module.css @@ -0,0 +1,58 @@ +.buttonWithAddress { + align-items: center; + background-color: #eef1ff; + border: 1px solid #597fff; + border-radius: 5px; + cursor: pointer; + display: flex; + gap: 4px; + padding: 3px 8px; + transition: all 0.2s ease; + user-select: none; + width: fit-content; + position: relative; +} +.auroIcon { + width: 22px; + height: 22px; +} + +.connectbutton { + display: inline-flex; + align-items: center; + color: #809dff; + cursor: pointer; + transition: all 0.2s; + padding: 3px 8px; + gap: 4px; + border-radius: 5px; +} + +.connectbutton:hover { + background-color: #f6f7fa; +} + +.plate { + position: relative; +} + +.item { + padding: 10px 16px; + cursor: pointer; + transition: all ease 200ms; + background-color: #fff; + display: flex; + align-items: center; + gap: 12px; + line-height: 18px; +} + +.item .icon { + fill: rgba(0, 0, 0, 0.8); + width: 20px; + height: 20px; +} + +.item:hover { + background-color: #f9f9f9; +} diff --git a/apps/ui/src/components/molecules/connectWalletButton/index.ts b/apps/ui/src/components/molecules/connectWalletButton/index.ts new file mode 100644 index 0000000..57c9420 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/index.ts @@ -0,0 +1 @@ +export { default as ConnectWalletButton } from './connectWalletButton'; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/WalletConnectPopUp.module.css b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/WalletConnectPopUp.module.css new file mode 100644 index 0000000..b6e7c39 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/WalletConnectPopUp.module.css @@ -0,0 +1,220 @@ +.walletConnectPopUp { + width: 80vw; + max-width: 820px; + background-color: #fff; + border-radius: 24px; + max-height: 90vh; + overflow-y: auto; +} + +@media (max-width: 768px) { + .walletConnectPopUp { + width: 90vw; + } +} + +@media (max-width: 576px) { + .walletConnectPopUp { + width: 100vw; + display: flex; + flex-direction: column-reverse; + border-radius: 24px 24px 0 0; + } +} + +.header { + background-repeat: no-repeat; + width: 100%; + background-position: center; + background-size: cover; + padding: 24px; +} + +.header .heading { + display: flex; + align-items: flex-start; + justify-content: space-between; +} + +@media (max-width: 592px) { + .header .heading { + margin-bottom: 8px; + } +} + +.title { + font-size: 18px; + line-height: 24px; + margin-bottom: 12px; + text-align: center; +} + +.header .progressContainer { + max-width: 400px; + margin: 0 auto; +} + +.header .message { + color: #0009; + line-height: 22px; + text-align: center; + max-width: 95%; + margin: 0 auto; + margin-top: 12px; + margin-bottom: 12px; +} + +.header .link { + display: block; + width: max-content; + margin: 0 auto; + font-size: 13px; + font-weight: 600; + line-height: 20px; + text-align: center; +} + +.mobileHeader { + padding: 16px; + width: 100%; + display: flex; + align-items: center; + gap: 8px; + position: relative; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.mobileHeader .logo { + width: 48px; + height: 48px; + padding: 8px; +} + +.mobileHeader .title { + line-height: 26px; +} + +.mobileHeader .message { + font-weight: 400; + line-height: 18px; +} + +.mobileHeader .closeBtn { + position: absolute; + top: 24px; + right: 24px; + cursor: pointer; + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + margin-top: -8px; + margin-right: -8px; + cursor: pointer; +} + +.closeBtn img { + width: 24px; + height: 24px; + fill: rgba(0, 0, 0, 0.3); + transition: fill ease 200ms; + cursor: pointer; +} + +.closeBtn:hover img { + fill: rgba(0, 0, 0, 0.6); +} + +.stepProgressPlate { + width: 100%; + position: relative; + display: flex; + align-items: center; +} + +.stepProgressLine { + background-color: rgba(232, 233, 235, 1); + height: 4px; + width: 100%; +} + +.stepProgressLineColor { + position: absolute; + left: 0; + top: 0; + height: 100%; + z-index: 2; + transition: all ease 400ms; +} + +.stepProgressDot { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + background-color: rgba(232, 233, 235, 1); + width: 14px; + height: 14px; + z-index: 3; +} + +.stepProgressCircle { + width: 10px; + height: 10px; + border-radius: 50%; + transition: all ease 400ms; +} + +.screen { + padding: 24px; +} + +.walletListCard { + background-color: #fff; + border: 1px solid rgba(240, 241, 245, 1); + padding: 16px; + display: flex; + align-items: center; + gap: 12px; + border-radius: 8px; + cursor: pointer; +} + +.walletListCard .Name { + font-size: 14px; + font-weight: 600; + line-height: 18px; +} + +.walletListCard .Icon { + width: 36px; + height: 36px; +} + +@media (max-width: 576px) { + .walletListCard { + border: none; + padding: 0; + background-color: transparent; + flex-direction: column; + gap: 8px; + width: max-content; + } + + .walletListCard .Name { + font-size: 12px; + font-weight: 600; + line-height: 16px; + text-align: center; + } + + .walletListCard .Icon { + width: calc(40px + 12px * 2); + height: calc(40px + 12px * 2); + padding: 12px; + border: 1px solid #f0f1f5; + border-radius: 12px; + } +} diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/core.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/core.tsx new file mode 100644 index 0000000..48544b2 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/core.tsx @@ -0,0 +1,150 @@ +import React, { useEffect, useMemo, useState } from 'react'; +import WalletConnectPopUpHeader from './header'; +import style from './WalletConnectPopUp.module.css'; +import WalletList from './screens/walletList'; +import ConnectingScreen from './screens/connectionScreen'; +import InstallScreen from './screens/installScreen'; +import SuccessScreen from './screens/successScreen'; +import FailScreen from './screens/failScreen'; +import WalletConnectPopUpMobileHeader from './mobileHeader'; +import { useMedia } from '../../../../hooks'; +import { useKeyPress } from '../../../../hooks/useKeyPress'; + +const messages = { + 0: 'Connecting your wallet is like “logging in” to Web3. Select your wallet from the options to get started.', + 1: 'Please approve the connection in your wallet and authorize access to continue.', + 2: 'Your wallet is now connected to Suiscan.', +}; + +const actions = { + 0: 'Connect your wallet', + 1: 'Approve Connection', + 2: 'Connection successfull', +}; + +const statuses = { + normal: 'normal', + notInstalled: 'notInstalled', + rejected: 'rejected', +}; + +const WalletConnectPopUpCore = ({ + walletName, + connected = false, + rejected = false, + connectFunction, + onClose, + onResolve, + list = [], + isMobileConnection, + onReturnToWallets, +}) => { + const [step, setStep] = useState(0); + const [stepStatus, setStepStatus] = useState(statuses.normal); + const [connectingWalletName, setConnectingWalletName] = useState(null); + const media = useMedia(); + const isMobile = !media.greater.xs; + useKeyPress('Escape', onClose); + + const findWalletByName = (name) => list.find((el) => el.name === name); + const currentWallet = findWalletByName(connectingWalletName); + + const [installed] = useMemo(() => { + if (list?.length < 1) return [[], []]; + return [list.filter((el) => el.installed), list.filter((el) => !el.installed)]; + }, [list]); + + const cardClickHandler = (name, installed) => { + setConnectingWalletName(name); + if (installed) { + setStepStatus(statuses.normal); + connectFunction(name); + } else setStepStatus(statuses.notInstalled); + setStep(1); + }; + + const onReturn = () => { + setStep(0); + setStepStatus(statuses.normal); + onReturnToWallets?.(); + }; + + useEffect(() => { + if (rejected && !connected) { + setStepStatus(statuses.rejected); + setStep(1); + } else if (connected && walletName && walletName === connectingWalletName) { + setStepStatus(statuses.normal); + setStep(2); + } else if (connected && !walletName) { + setStepStatus(statuses.normal); + setStep(2); + } + }, [connected, rejected, walletName, connectingWalletName]); + + const renderComponentBySteps = (step): JSX.Element => { + switch (step) { + case 0: + return ( + + ); + case 1: + // eslint-disable-next-line no-case-declarations + const commanProps = { walletName: connectingWalletName, walletImg: currentWallet?.icon, onReturn }; + if (stepStatus === statuses.normal) { + return ; + } + if (stepStatus === statuses.notInstalled) { + return ( + + ); + } + if (stepStatus === statuses.rejected) { + return ( + + ); + } + break; + case 2: + if (stepStatus === statuses.normal) { + return ; + } + break; + default: + break; + } + }; + + return ( +
+ +
{renderComponentBySteps(step)}
+ {isMobile && ( + + )} +
+ ); +}; + +export default WalletConnectPopUpCore; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/header.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/header.tsx new file mode 100644 index 0000000..d4c7219 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/header.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import style from './WalletConnectPopUp.module.css'; +import headerBG from './img/headerBG.png'; +import CloseIcon from './img/CloseIcon.svg'; +import WalletConnectPopUpProgress from './stepProgress'; +import Image from 'next/image'; +import classNames from 'classnames'; +import { Logo } from '../../../atoms/logo'; + +const WalletConnectPopUpHeader = ({ step, onClose, message, action, isMobile }) => { + return ( +
+ {!isMobile && ( +
+ +
+ +
+
+ )} +

{action}

+
+ +
+

{message}

+
+ ); +}; + +export default WalletConnectPopUpHeader; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/CloseIcon.svg b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/CloseIcon.svg new file mode 100644 index 0000000..f939ae8 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/CloseIcon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Loader.gif b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..af16020fc498ecd697fb1f1358c5cd812f77baa2 GIT binary patch literal 125243 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 f2PQ*X|GsXX{}F!rzi + + + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Triangle.svg b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Triangle.svg new file mode 100644 index 0000000..b85230a --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/Triangle.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/failed.svg b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/failed.svg new file mode 100644 index 0000000..efc6b2f --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/failed.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/headerBG.png b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/headerBG.png new file mode 100644 index 0000000000000000000000000000000000000000..cac8d418cf57c2238e7ebe9d28f2276db3ef6ad5 GIT binary patch literal 50482 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 literal 0 HcmV?d00001 diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/success.png b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/img/success.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c3dcd0243be961320f4ea4b790bd16ccdfed68 GIT binary patch literal 7287 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 { + const media = useMedia(); + const isMobile = !media.greater.xs; + const { show, zIndex = 50, onClose = () => null } = props; + + return ( + + + + ); +}; + +export default WalletConnectPopUp; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/mobileHeader.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/mobileHeader.tsx new file mode 100644 index 0000000..696b787 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/mobileHeader.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import style from './WalletConnectPopUp.module.css'; +import CloseIcon from './img/CloseIcon.svg'; +import Image from 'next/image'; +import { Logo } from '../../../atoms/logo'; + +const WalletConnectPopUpMobileHeader = ({ onClose, message, action }) => { + return ( +
+
+ + +
+ +
+

{action}

+

{message}

+
+
+ ); +}; + +export default WalletConnectPopUpMobileHeader; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/Screens.module.css b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/Screens.module.css new file mode 100644 index 0000000..fb947a0 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/Screens.module.css @@ -0,0 +1,220 @@ +.screenTitle { + font-size: 16px; + font-weight: 600; + line-height: 24px; + margin: 0 auto; + margin-bottom: 24px; + text-align: center; + text-transform: capitalize; +} + +.walletListList { + width: 100%; +} + +.walletListRow { + display: grid; + gap: 16px; + grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); +} + +@media (max-width: 576px) { + .walletListRow { + display: flex; + gap: 32px; + } +} + +.walletListWrapper { + display: block; + background-color: #fff !important; +} + +@media (max-width: 576px) { + .walletListWrapper { + width: max-content; + } +} + +.wrapper { + padding: 0 16px; +} + +@media (max-width: 576px) { + .wrapper { + padding: 0; + } +} + +.connectingScreen { + display: flex; + flex-direction: column; + align-items: center; +} + +.connectingScreenSubtitle { + margin-top: 16px; + margin-bottom: 8px; + font-size: 14px; + font-weight: 700; + line-height: 22px; + text-align: center; +} + +.connectingScreenText { + font-size: 14px; + font-weight: 500; + line-height: 22px; + text-align: center; + margin-bottom: 16px; + color: rgba(0, 0, 0, 0.6); +} + +.connectingScreenButton { + margin-bottom: 64px; +} + +.connectingScreenHelp { + font-size: 12px; + line-height: 18px; +} + +.installScreen { + display: flex; + flex-direction: column; + align-items: center; +} + +.installScreenSubtitle { + margin-top: 16px; + margin-bottom: 8px; + font-size: 14px; + font-weight: 700; + line-height: 22px; + text-align: center; +} + +.installScreenSubtitle span { + text-transform: capitalize; +} + +.installScreenText { + font-size: 14px; + font-weight: 500; + line-height: 22px; + text-align: center; + margin-bottom: 16px; +} + +.installScreenButton { + margin-bottom: 16px; +} + +.installScreenBack { + font-size: 14px; + font-weight: 600; + line-height: 24px; + cursor: pointer; + color: rgba(89, 127, 255, 1); +} + +.SuccessScreen { + display: flex; + flex-direction: column; + align-items: center; +} + +.SuccessScreenSubtitle { + margin-top: 16px; + margin-bottom: 8px; + font-size: 14px; + font-weight: 700; + line-height: 22px; + text-align: center; +} + +.SuccessScreenSubtitle span { + text-transform: capitalize; +} + +.failScreen { + display: flex; + flex-direction: column; + align-items: center; +} + +.failScreenSubtitle { + margin-top: 16px; + margin-bottom: 8px; + font-size: 14px; + font-weight: 700; + line-height: 22px; + text-align: center; +} + +.failScreenSubtitle span { + text-transform: capitalize; +} + +.failScreenButton { + margin-bottom: 16px; +} + +.failScreenBack { + font-size: 14px; + font-weight: 600; + line-height: 24px; + cursor: pointer; + color: rgba(89, 127, 255, 1); +} + +.failScreenIcon { + position: relative; + display: flex; + justify-content: center; + align-items: center; +} + +.failIconTriangle { + position: absolute; + left: calc(50% - 17px); + top: calc(50% - 17px); +} + + +.loadingWrapper { + display: flex; + align-items: center; + gap: 8px; + position: relative; +} + +.loadingWrapperIcon { + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + border: 1px solid rgba(0, 0, 0, 0.05); + padding: 10px; +} + +.loadingWrapperIcon img { + width: 36px; + height: 36px; + object-fit: contain; +} + +.listBlock { + margin-bottom: 24px; +} + +.listBlock:last-child { + margin-bottom: 0; +} + +.noWallets { + font-size: 14px; + font-weight: 500; + text-align: center; + color: rgba(0, 0, 0, 0.6); +} diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/connectionScreen.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/connectionScreen.tsx new file mode 100644 index 0000000..3d0af62 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/connectionScreen.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import style from './Screens.module.css'; +import { Button } from '../../../../atoms/button'; +import classNames from 'classnames'; +import Image from 'next/image'; +import { Logo } from '../../../../atoms/logo'; +import { Loader } from '../../../../atoms/loader'; + +const ConnectingScreen = ({ onReturn, walletName, walletImg }) => { + return ( +
+

Mina Wallet

+
+
+ +
+
+ +
+
+ +
+
+

+ Opening {walletName ?? 'wallet'}... +

+

+ Confirm connection in the extension. +

+
+ ); +}; + +export default ConnectingScreen; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/failScreen.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/failScreen.tsx new file mode 100644 index 0000000..ebc5ed4 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/failScreen.tsx @@ -0,0 +1,47 @@ +import Triangle from '../img/Triangle.svg'; +import Image from 'next/image'; +import { Button } from '../../../../atoms/button'; +import classNames from 'classnames'; +import { Logo } from '../../../../atoms/logo'; +import { Loader } from '../../../../atoms/loader'; + +import style from './Screens.module.css'; + +type FailScreenProps = { + walletName: string; + walletImg?: string; + installed?: boolean; + onReturn?: () => void; + onRetry?: (walletName: string, installed?: boolean) => void; +}; + +const FailScreen = ({ walletName, walletImg, installed, onReturn, onRetry }: FailScreenProps): JSX.Element => { + return ( +
+

Mina Wallet

+
+
+ +
+
+ + +
+
+ +
+
+

Connection Rejected!

+
+ ); +}; + +export default FailScreen; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/installScreen.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/installScreen.tsx new file mode 100644 index 0000000..08c8014 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/installScreen.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import style from './Screens.module.css'; +import { Button } from '../../../../atoms/button'; +import classNames from 'classnames'; +import { Logo } from '../../../../atoms/logo'; + +const InstallScreen = ({ onReturn, walletName = 'wallet', downloadUrl, downloadUrlMobile, isMobileConnection }) => { + return ( +
+ {!isMobileConnection || downloadUrlMobile ? ( + <> +

Mima Wallet

+ +

+ {walletName} is not installed +

+

+ The {walletName} extension is not installed in your browser +

+
+ ); +}; + +export default InstallScreen; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/successScreen.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/successScreen.tsx new file mode 100644 index 0000000..337b91a --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/successScreen.tsx @@ -0,0 +1,33 @@ +import React, { useEffect } from 'react'; +import style from './Screens.module.css'; +import success from '../img/success.png'; +import Image from 'next/image'; +import classNames from 'classnames'; + +type SuccessScreenProps = { + onClose: () => void; + onResolve: (value: string) => void; + walletName: string; +}; + +const SuccessScreen = ({ onClose, walletName, onResolve }: SuccessScreenProps): JSX.Element => { + useEffect(() => { + onResolve(walletName); + const timeout = setTimeout(onClose, 3000); + return () => { + clearTimeout(timeout); + }; + }, []); + + return ( +
+

Mina Wallet

+ Success! +

+ {walletName ?? 'wallet'} Connected! +

+
+ ); +}; + +export default SuccessScreen; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/walletList.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/walletList.tsx new file mode 100644 index 0000000..996c45e --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/screens/walletList.tsx @@ -0,0 +1,69 @@ +import { useMemo } from 'react'; +import style from './Screens.module.css'; +import Wallet from '../wallet'; +import CustomScrollList from '../../../customScrollList'; +import classNames from 'classnames'; + +const WalletList = ({ list, cardClickHandler, isMobile, isMobileConnection }) => { + const [installed, avaliable] = useMemo(() => { + if (list?.length < 1) return [[], []]; + return [list.filter((el) => el.installed), list.filter((el) => !el.installed)]; + }, [list]); + + const hasInstalled = installed.length > 0; + const wallets = [installed, avaliable]; + + const isWalletsUnvaliable = installed.length === 0; + const isDesctopeAndHasNotInstalledWallet = !isMobile && !isMobileConnection; + const isMobileAndHasInstalledWallet = !isDesctopeAndHasNotInstalledWallet && !isWalletsUnvaliable; + + const renderWallet = ({ icon, name, installed }) => { + return ; + }; + + return ( +
+ {isDesctopeAndHasNotInstalledWallet && + wallets.map((array, i) => + array.length > 0 ? ( +
+

+ {hasInstalled ? (i === 0 && 'Installed') || 'More' : 'Available Wallets'} ( + {array.length ?? '-'}) +

+
+ +
{array.map(renderWallet)}
+
+
+
+ ) : null + )} + {isMobileAndHasInstalledWallet && ( +
+ +
{installed.map(renderWallet)}
+
+
+ )} + + {isWalletsUnvaliable &&
No wallets avaliable
} +
+ ); +}; + +export default WalletList; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/stepProgress.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/stepProgress.tsx new file mode 100644 index 0000000..63d0a0b --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/stepProgress.tsx @@ -0,0 +1,56 @@ +import style from './WalletConnectPopUp.module.css'; + +const lineStyles = [ + { + width: '0.1%', + background: 'linear-gradient(90deg, #597FFF 0%, #4FB8CF 100%)', + }, + { + width: '50%', + background: 'linear-gradient(90deg, #597FFF 0%, #4FB8CF 100%)', + }, + { + width: '100%', + background: 'linear-gradient(90deg, #597FFF 0%, #4FB8CF 49.79%, #7DD3A1 100%)', + }, +]; + +const WalletConnectPopUpProgress = ({ step }: { step: number }): JSX.Element => { + return ( +
+
+
+
+
+
= 0 ? 'rgba(89, 127, 255, 1)' : 'transparent', + }} + >
+
+
+
= 1 ? 'rgba(89, 127, 255, 1)' : 'transparent', + }} + >
+
+
+
= 2 ? 'rgba(89, 127, 255, 1)' : 'transparent', + }} + >
+
+
+
+ ); +}; + +export default WalletConnectPopUpProgress; diff --git a/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/wallet.tsx b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/wallet.tsx new file mode 100644 index 0000000..d6bf2d9 --- /dev/null +++ b/apps/ui/src/components/molecules/connectWalletButton/walletConnectPopUp/wallet.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import style from './WalletConnectPopUp.module.css'; +import Image from 'next/image'; +import classNames from 'classnames'; + +type WalletProps = { + icon?: string; + name?: string; + installed?: boolean; + onClick?: (name: string, installed?: boolean) => void; +}; + +const Wallet = ({ icon, name, installed, onClick }: WalletProps): JSX.Element => { + return ( +
onClick(name, installed)}> + +
{name}
+
+ ); +}; + +export default Wallet; diff --git a/apps/ui/src/components/molecules/dropdownWrapper/DropdownWrapper.module.css b/apps/ui/src/components/molecules/dropdownWrapper/DropdownWrapper.module.css index 2adec01..5657d98 100644 --- a/apps/ui/src/components/molecules/dropdownWrapper/DropdownWrapper.module.css +++ b/apps/ui/src/components/molecules/dropdownWrapper/DropdownWrapper.module.css @@ -36,6 +36,7 @@ display: flex; justify-content: space-between; margin-bottom: 8px; + cursor: pointer; } .dropdownWrapperMobileContent { diff --git a/apps/ui/src/components/molecules/dropdownWrapper/index.tsx b/apps/ui/src/components/molecules/dropdownWrapper/index.tsx index 94fe15f..57d23af 100644 --- a/apps/ui/src/components/molecules/dropdownWrapper/index.tsx +++ b/apps/ui/src/components/molecules/dropdownWrapper/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { ReactNode, RefObject } from 'react'; import style from './DropdownWrapper.module.css'; import classNames from 'classnames'; import CloseIcon from './Close.svg'; @@ -6,6 +6,19 @@ import Image from 'next/image'; import { useMedia, useSpaceToRight } from '../../../hooks'; import PopupOverlay from '../popupOverlay'; +type DropdownWrapperProps = { + children: ReactNode; + minWidth?: string; + maxHeight?: string; + className?: string; + show: boolean; + onClose: () => void; + parentRef?: RefObject; + forceToRight?: boolean; + forceToLeft?: boolean; + centered?: boolean; +}; + const DropdownWrapper = ({ children, minWidth = '305px', @@ -17,8 +30,8 @@ const DropdownWrapper = ({ forceToRight = false, forceToLeft = false, centered = false, -}) => { - const media = useMedia(0); +}: DropdownWrapperProps): JSX.Element => { + const media = useMedia(); const hasSpaceToRight = useSpaceToRight(parentRef?.current, minWidth + 20); return media.greater.sm && show ? ( diff --git a/apps/ui/src/components/molecules/popupOverlay/index.tsx b/apps/ui/src/components/molecules/popupOverlay/index.tsx index 1e7a1ad..534b651 100644 --- a/apps/ui/src/components/molecules/popupOverlay/index.tsx +++ b/apps/ui/src/components/molecules/popupOverlay/index.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; import React, { useEffect, useState, useRef } from 'react'; -import reactDom from 'react-dom'; +import { createPortal } from 'react-dom'; import style from './PopupOverlay.module.css'; import { useRouter } from 'next/router'; import { useMedia } from '../../../hooks'; @@ -11,7 +11,7 @@ type PopupOverlayProps = { position?: string; show?: boolean; animation?: string; - forwardedRef?: any; + forwardedRef?: React.RefObject; zIndex?: number; height?: string; }; @@ -140,7 +140,7 @@ const PopupOverlay = ({ }, []); return showState - ? reactDom.createPortal( + ? createPortal( <>
{ + const [firstString, setFirstString] = useState(null); + const [secondString, setSecondString] = useState(null); + const [string, setString] = useState(null); + const { + greater: { sm: smScreen, lg: lgScreen, md: mdScreen }, + } = useMedia(); + + const sliceString = (numberLetter) => { + const minLengthWord = numberLetter * 2 + 2; + if (text.length <= minLengthWord) { + setString(text); + return; + } + const startText = text.slice(0, numberLetter); + const endText = text.slice(text.length - numberLetter); + setFirstString(startText); + setSecondString(endText); + }; + + useEffect(() => { + setString(null); + if (!view) return; + if (!smScreen) { + sliceString(view.sm === 4 ? view.sm : view.sm - 2); + return; + } + if (smScreen && !lgScreen) { + sliceString(view.md === 4 ? view.md : view.md - 2); + return; + } + if (lgScreen) { + sliceString(view.lg === 4 ? view.lg : view.lg - 2); + return; + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [smScreen, lgScreen, mdScreen, view, text]); + + if ((!firstString || !secondString || !text) && !string) return null; + + return ( +
+ {string ? ( +
{string}
+ ) : ( + <> +
{firstString}
+
+ + + +
+
{secondString}
+ + )} +
+ ); +}; + +export default StaticEllipse; diff --git a/apps/ui/src/components/organisms/pageHeader/index.module.css b/apps/ui/src/components/organisms/pageHeader/index.module.css new file mode 100644 index 0000000..8fb176f --- /dev/null +++ b/apps/ui/src/components/organisms/pageHeader/index.module.css @@ -0,0 +1,4 @@ +.wrapper { + display: flex; + justify-content: flex-end; +} \ No newline at end of file diff --git a/apps/ui/src/components/organisms/pageHeader/index.ts b/apps/ui/src/components/organisms/pageHeader/index.ts new file mode 100644 index 0000000..b310324 --- /dev/null +++ b/apps/ui/src/components/organisms/pageHeader/index.ts @@ -0,0 +1 @@ +export { default as PageHeader } from './pageHeader'; diff --git a/apps/ui/src/components/organisms/pageHeader/pageHeader.tsx b/apps/ui/src/components/organisms/pageHeader/pageHeader.tsx new file mode 100644 index 0000000..de21210 --- /dev/null +++ b/apps/ui/src/components/organisms/pageHeader/pageHeader.tsx @@ -0,0 +1,13 @@ +import { ConnectWalletButton } from '../../molecules/connectWalletButton'; + +import style from './index.module.css'; + +const PageHeader = () => { + return ( +
+ +
+ ); +}; + +export default PageHeader; diff --git a/apps/ui/src/hooks/useAuroWallet.ts b/apps/ui/src/hooks/useAuroWallet.ts index a2c202e..485662f 100644 --- a/apps/ui/src/hooks/useAuroWallet.ts +++ b/apps/ui/src/hooks/useAuroWallet.ts @@ -1,6 +1,29 @@ import { useContext, createContext } from 'react'; -const DEFAULT_CONTEXT = { +export type ResultMessage = { + hash?: string; + message?: string; + result?: boolean; +}; + +export type WalletContextType = { + accountId: string | null; + connectMessage: string | null; + stakingResultMessage: ResultMessage; + sendResultMessage: ResultMessage; + walletNetwork: string | null; + actions: { + onConnectClick: () => void; + onDisconnectClick: () => void; + onStakingClick: (to: string, memo: string, fee: number) => void; + onSendClick: (amount: number, to: string, fee: number, memo: string) => void; + resetConnectMessage: () => void; + resetSendResultMessage: () => void; + resetStakingResultMessage: () => void; + }; +}; + +const DEFAULT_CONTEXT: WalletContextType = { accountId: null, connectMessage: null, stakingResultMessage: {}, @@ -13,6 +36,7 @@ const DEFAULT_CONTEXT = { resetConnectMessage: () => console.warn('Provider not connected'), resetSendResultMessage: () => console.warn('Provider not connected'), resetStakingResultMessage: () => console.warn('Provider not connected'), + onDisconnectClick: () => console.warn('Disconected'), }, }; diff --git a/apps/ui/src/hooks/useAuroWalletCore.ts b/apps/ui/src/hooks/useAuroWalletCore.ts index ed67453..0c12876 100644 --- a/apps/ui/src/hooks/useAuroWalletCore.ts +++ b/apps/ui/src/hooks/useAuroWalletCore.ts @@ -1,24 +1,17 @@ import { useEffect, useState } from 'react'; +import { ResultMessage, WalletContextType } from './useAuroWallet'; -export default function useAuroWalletCore() { +export default function useAuroWalletCore(): WalletContextType { const [accountId, setAccountId] = useState(null); const [connectMessage, setConnectMessage] = useState(null); - const [stakingResultMessage, setStakingResultMessage] = useState<{ - hash?: string; - message?: string; - result?: boolean; - }>({}); - const [sendResultMessage, setSendResultMessage] = useState<{ - hash?: string; - message?: string; - result?: boolean; - }>({}); + const [stakingResultMessage, setStakingResultMessage] = useState({}); + const [sendResultMessage, setSendResultMessage] = useState({}); const [walletNetwork, setWalletNetwork] = useState(null); const resetConnectMessage = (): void => setConnectMessage(null); const resetSendResultMessage = (): void => setSendResultMessage({}); const resetStakingResultMessage = (): void => setStakingResultMessage({}); - const minaAdapter = window['mina']; + const minaAdapter = typeof window !== 'undefined' && window['mina']; function handleChainChange(newChain) { setWalletNetwork(newChain); diff --git a/apps/ui/src/hooks/useKeyPress.ts b/apps/ui/src/hooks/useKeyPress.ts new file mode 100644 index 0000000..ab6c605 --- /dev/null +++ b/apps/ui/src/hooks/useKeyPress.ts @@ -0,0 +1,14 @@ +import { useEffect } from 'react'; + +export const useKeyPress = (key, cb) => { + const onKeyPress = (e) => { + e.code === key && cb(e); + }; + + useEffect(() => { + document.addEventListener('keydown', onKeyPress); + return () => { + document.removeEventListener('keydown', onKeyPress); + }; + }, [cb]); +}; diff --git a/apps/ui/src/hooks/useMedia.ts b/apps/ui/src/hooks/useMedia.ts index 5b552e2..6bc3130 100644 --- a/apps/ui/src/hooks/useMedia.ts +++ b/apps/ui/src/hooks/useMedia.ts @@ -1,50 +1,39 @@ -import { useEffect, useState, useCallback } from 'react'; -import _, { debounce } from 'lodash'; +import { useEffect, useState } from 'react'; -export const useMedia = (query?: string | number) => { +type Greater = { + xs: boolean; + sm: boolean; + md: boolean; + lg: boolean; + xl: boolean; +}; + +export const useMedia = (): { + width: number; + greater: Greater; +} => { let innerWidth; if (typeof window !== 'undefined') { innerWidth = window.innerWidth; } - const [width, setWidth] = useState(innerWidth); - const [dimensions, setDimensions] = useState({ - xs: width <= 576, - sm: width > 576 && width <= 768, - md: width > 768 && width <= 992, - lg: width > 992 && width <= 1200, - xl: width > 1200 && width <= 1400, - xxl: width > 1400, - }); - const [greater, setGreater] = useState({ + const [width, setWidth] = useState(innerWidth); + + const [greater, setGreater] = useState({ xs: width > 576, sm: width > 768, md: width > 992, lg: width > 1200, xl: width > 1400, }); - const [isGreaterThanQuery, setIsGreaterThanQuery] = useState(true); - - const debouncedUpdateWidth = useCallback( - debounce(() => setWidth(innerWidth), 200), - [] - ); useEffect(() => { - window.addEventListener('resize', debouncedUpdateWidth); + window.addEventListener('resize', () => setWidth(innerWidth)); return () => { - window.removeEventListener('resize', debouncedUpdateWidth); + window.removeEventListener('resize', () => setWidth(innerWidth)); }; - }, [debouncedUpdateWidth]); + }, []); useEffect(() => { - setDimensions({ - xs: width <= 576, - sm: width > 576 && width <= 768, - md: width > 768 && width <= 992, - lg: width > 992 && width <= 1200, - xl: width > 1200 && width <= 1400, - xxl: width > 1400, - }); setGreater({ xs: width > 576, sm: width > 768, @@ -54,15 +43,8 @@ export const useMedia = (query?: string | number) => { }); }, [width]); - useEffect(() => { - setIsGreaterThanQuery(width > Number(query)); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [width]); - return { width, - dimensions, - isGreaterThanQuery, greater, }; }; diff --git a/apps/ui/src/pages/_app.tsx b/apps/ui/src/pages/_app.tsx index 09687d5..2b24a50 100644 --- a/apps/ui/src/pages/_app.tsx +++ b/apps/ui/src/pages/_app.tsx @@ -7,8 +7,12 @@ import '../../public/typography.css'; import type { AppProps } from 'next/app'; import { useEffect } from 'react'; +import { WalletContext } from '../hooks/useAuroWallet'; +import useAuroWalletCore from '../hooks/useAuroWalletCore'; export default function App({ Component, pageProps }: AppProps) { + const walletData = useAuroWalletCore(); + const handleWindowResize = () => { document.documentElement.style.setProperty('--app-height', `${window.innerHeight}px`); }; @@ -22,5 +26,9 @@ export default function App({ Component, pageProps }: AppProps) { }; }, []); - return ; + return ( + + + + ); } diff --git a/apps/ui/src/pages/index.tsx b/apps/ui/src/pages/index.tsx index 9790d77..f8e4cd6 100644 --- a/apps/ui/src/pages/index.tsx +++ b/apps/ui/src/pages/index.tsx @@ -7,6 +7,8 @@ import { ScoringConfig, testWorldConfig } from '../comman/config/tableConfig'; import styles from './index.module.css'; import { Header } from '../components/atoms/header'; import { TabSwitcher } from '../components/atoms/tabSwitcher'; +import PageHeader from '../components/organisms/pageHeader/pageHeader'; +import OverlayWrapper from '../components/molecules/popupOverlay/overlayWrapper'; export const limitOptions: LimitOptions = [ { text: '50', value: 50 }, @@ -126,6 +128,8 @@ export default function Home() {
+ +