From 3df055a24870406aaf16ceee3127b93ab588405d Mon Sep 17 00:00:00 2001 From: Tristan Yang Date: Thu, 15 Dec 2022 15:15:55 +0800 Subject: [PATCH] feat: qr code image for invite link --- src/common/component/InviteLink.tsx | 55 ++++--------------- .../component/InviteModal/InviteByEmail.tsx | 6 ++ src/common/component/QRCode.tsx | 31 +++++++++++ 3 files changed, 49 insertions(+), 43 deletions(-) create mode 100644 src/common/component/QRCode.tsx diff --git a/src/common/component/InviteLink.tsx b/src/common/component/InviteLink.tsx index 913a870f..a09afc5e 100644 --- a/src/common/component/InviteLink.tsx +++ b/src/common/component/InviteLink.tsx @@ -1,44 +1,10 @@ -import styled from "styled-components"; +import { FC } from "react"; import useInviteLink from "../hook/useInviteLink"; import Input from "./styled/Input"; import Button from "./styled/Button"; -import { FC } from "react"; import { useTranslation } from "react-i18next"; +import QRCode from "./QRCode"; -const StyledWrapper = styled.div` - display: flex; - flex-direction: column; - align-items: flex-start; - padding-bottom: 32px; - .tip { - font-weight: 500; - font-size: 14px; - color: #6b7280; - margin-bottom: 8px; - } - .link { - width: 512px; - margin-bottom: 12px; - position: relative; - button { - position: absolute; - right: 4px; - top: 50%; - transform: translateY(-50%); - } - input { - padding-right: 75px; - } - } - .sub_tip { - margin-left: 4px; - font-weight: 400; - font-size: 12px; - line-height: 18px; - color: #616161; - margin-bottom: 20px; - } -`; type Props = {}; const InviteLink: FC = () => { const { t } = useTranslation("chat"); @@ -48,19 +14,22 @@ const InviteLink: FC = () => { }; return ( - - {t("share_invite_link")} -
- -
- {t("invite_link_expire")} + {t("invite_link_expire")} +
+ +
-
+ ); }; diff --git a/src/common/component/InviteModal/InviteByEmail.tsx b/src/common/component/InviteModal/InviteByEmail.tsx index 1c5db215..1dae03ba 100644 --- a/src/common/component/InviteModal/InviteByEmail.tsx +++ b/src/common/component/InviteModal/InviteByEmail.tsx @@ -4,11 +4,13 @@ import { useTranslation } from "react-i18next"; import styled from "styled-components"; import { useSendLoginMagicLinkMutation } from "../../../app/services/auth"; import useInviteLink from "../../hook/useInviteLink"; +import QRCode from "../QRCode"; import Button from "../styled/Button"; import Input from "../styled/Input"; const Styled = styled.div` padding: 16px 0; + padding-bottom: 0; .input { position: relative; display: flex; @@ -74,6 +76,7 @@ interface Props { } const InviteByEmail: FC = ({ cid }) => { + const { t } = useTranslation("chat"); const { t: ct } = useTranslation(); const [email, setEmail] = useState(""); @@ -137,6 +140,9 @@ const InviteByEmail: FC = ({ cid }) => { +
+ {!generating && } +
{t("invite_link_expire")}