import { FunctionComponent } from "react"; import color from "../../styles/color"; import ReactModal from "react-modal"; import styled from "styled-components"; import TwitterIcon from "../../public/images/svg/twitter-modal-icon.svg"; import Image from "next/image"; import { PrimaryButton } from "../primary-button"; import { SecondaryButton } from "../secondary-button"; import { MINIMUM_OSMO_FEE } from "../../constants/wallet"; import { useRouter } from "next/router"; import { Bech32Address } from "@keplr-wallet/cosmos"; interface Props { twitterUserName: string | undefined; walletInfo: | { name: string; pubKey: Uint8Array; bech32Address: string } | undefined; isModalOpen: boolean; onCloseModal: () => void; onClickRegisterButton: () => Promise; isLoadingRegistration?: boolean; } export const FinalCheckModal: FunctionComponent = (props) => { const { twitterUserName, walletInfo, isModalOpen, onCloseModal, onClickRegisterButton, isLoadingRegistration, } = props; const router = useRouter(); return ( Final Checks {`You are claiming the ICNS name ${twitterUserName} on keplr account`} } title="Your Twitter ID" content={`@${twitterUserName}`} />
} title={walletInfo?.name || "Keplr account"} content={Bech32Address.shortenAddress( walletInfo?.bech32Address || "", 28, )} /> ☑️ ICNS name can only be claimed once per Twitter account.
☑️ ICNS name can’t be transferred at this time.
☑️ Please make sure you’ve selected the right account on your wallet.

{MINIMUM_OSMO_FEE} will be spent as a spam-prevention fee.
Register { await router.push("/"); }} > Use a different account
); }; const ModalContainer = styled.div` display: flex; flex-direction: column; max-width: 43.5rem; padding: 2rem 2.25rem; font-family: "Inter", serif; font-style: normal; `; const ModalTitle = styled.div` font-weight: 600; font-size: 1.625rem; line-height: 1.94rem; color: ${color.white}; margin-bottom: 1.75rem; `; const ModalDescription = styled.div` font-weight: 500; font-size: 1rem; line-height: 1.18rem; color: ${color.grey["100"]}; `; const SubTextsContainer = styled.div` margin-top: 1.75rem; padding: 2rem 1.5rem; background-color: ${color.grey["700"]}; `; const SubText = styled.div` font-weight: 500; font-size: 1rem; line-height: 1.5rem; color: ${color.grey["300"]}; `; const SubBoldText = styled.span` color: ${color.grey["100"]}; `; const ButtonContainer = styled.div` display: flex; flex-direction: column; align-items: center; margin-top: 1.75rem; `; const RegisterButton = styled.div` width: 60%; height: 4.125rem; `; const CancelButton = styled.div` width: 80%; height: 3.8rem; `; const NameBox: FunctionComponent<{ title: string; content: string; icon?: React.ReactElement; marginTop: string; }> = ({ icon, title, content, marginTop }) => { return ( {icon ? {icon} : null} {title} {content} ); }; const NameBoxContainer = styled.div` position: relative; display: flex; flex-direction: column; font-family: "Inter", serif; font-style: normal; `; const NameBoxTitleContainer = styled.div` position: absolute; top: -1.9rem; display: flex; flex-direction: row; align-items: center; `; const NameBoxIconContainer = styled.div` display: flex; align-items: center; height: 1px; `; const NameBoxTitle = styled.div` font-weight: 700; font-size: 1rem; line-height: 1.18rem; color: ${color.grey["400"]}; `; const NameBoxContentContainer = styled.div` display: flex; align-items: center; justify-content: center; padding: 2.125rem 0; background-color ${color.grey["700"]}; border: 1px solid ${color.grey["300"]}; font-weight: 600; font-size: 1.5rem; line-height: 1.81rem; color: ${color.white} `;