feat: add level prop to qrcode

This commit is contained in:
Tristan Yang
2023-02-26 14:41:31 +08:00
parent e80466b1c8
commit c3e60db634
2 changed files with 23 additions and 20 deletions
+22 -19
View File
@@ -4,29 +4,32 @@ import { useAppSelector } from '../../app/store';
type Props = { type Props = {
link: string, link: string,
size?: number size?: number,
level?: "L" | "M" | "H" | "Q"
} }
const QRCode = ({ link, size = 512 }: Props) => { const QRCode = ({ link, size = 512, level = "L" }: Props) => {
const logo = useAppSelector(store => store.server.logo); const logo = useAppSelector(store => store.server.logo);
return ( return (
<QR <div className="p-2 bg-white dark:bg-slate-200 rounded">
renderAs='svg' <QR
value={link} renderAs='svg'
className="rounded border border-solid border-gray-200 dark:border-none !w-full !h-full" value={link}
size={size} className="rounded border border-solid border-gray-200 dark:border-none !w-full !h-full"
bgColor={"#fff"} size={size}
fgColor={"#000"} bgColor={"#fff"}
level={"L"} fgColor={"#000"}
includeMargin={true} level={level}
imageSettings={{ // includeMargin={true}
src: logo, imageSettings={{
x: undefined, src: logo,
y: undefined, x: undefined,
height: size / 6, y: undefined,
width: size / 6, height: size / 6,
excavate: true, width: size / 6,
}} /> excavate: true,
}} />
</div>
); );
}; };
+1 -1
View File
@@ -27,7 +27,7 @@ const GuestBlankPlaceholder = () => {
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<span className="text-gray-400 dark:text-gray-200 my-3 text-sm">{t("guest_login_tip")}</span> <span className="text-gray-400 dark:text-gray-200 my-3 text-sm">{t("guest_login_tip")}</span>
<div className="w-44 h-44 self-center mb-4"> <div className="w-44 h-44 self-center mb-4">
<QRCode size={1200} link={`https://voce.chat/login?s=${encodeURIComponent(BASE_ORIGIN)}`} /> <QRCode level="Q" size={1200} link={`https://voce.chat/login?s=${encodeURIComponent(BASE_ORIGIN)}`} />
</div> </div>
<Button onClick={handleSignIn} className="small">{t("sign_in")}</Button> <Button onClick={handleSignIn} className="small">{t("sign_in")}</Button>
</div> </div>