Improve QR code viewer

This commit is contained in:
Marvin Sextro 2021-12-29 00:53:31 +01:00
parent 64f473d214
commit 3b04e24a6b
1 changed files with 21 additions and 1 deletions

View File

@ -2,17 +2,37 @@ import {serverSideTranslations} from 'next-i18next/serverSideTranslations';
import React, {useEffect, useState} from "react";
import QRCode from "react-qr-code";
import Card from '../components/Card';
import Logo from "../components/Logo";
function Pass(): JSX.Element {
const [fragment, setFragment] = useState<string>(undefined);
function closeViewer() {
setFragment(undefined);
window.location.href = '/';
}
useEffect(() => {
const rawFragment = window.location.hash.substring(1);
const decodedFragment = Buffer.from(rawFragment, 'base64').toString();
setFragment(decodedFragment);
}, [fragment]);
window.location.replace('#');
if (typeof window.history.replaceState == 'function') {
const href = window.location.href;
history.replaceState({}, '', href.slice(0, href.lastIndexOf('/')));
}
document.addEventListener('visibilitychange', () => {
if (document.hidden) {
closeViewer();
}
});
window.addEventListener('blur', closeViewer);
}, []);
return (
<div className="py-6 flex flex-col space-y-5 items-center">