import React, { useEffect, useState } from 'react'; import { useParams } from 'react-router-dom'; import { getPublicPass, publicPassQrUrl } from '../api'; import { PublicPass } from '../types'; import { formatVisitRange } from '../status'; /** * Public visitor pass opened from the SMS link (no login). Shows the QR the * visitor presents to the access console's webcam. */ export const PublicPassPage: React.FC = () => { const { token } = useParams<{ token: string }>(); const [pass, setPass] = useState(null); const [error, setError] = useState(null); useEffect(() => { if (!token) return; getPublicPass(token) .then(setPass) .catch((e) => setError(e instanceof Error ? e.message : '조회 실패')); }, [token]); if (error) { return (
IT센터 출입증
{error}
); } if (!pass || !token) { return
불러오는 중…
; } return (
IT센터 출입증
{pass.visitorName}
{pass.company || '-'}
출입 QR
{pass.zoneName || '-'}
{formatVisitRange(pass.visitFrom, pass.visitTo)}
전산실 입장 시 QR을 출입관리시스템에 입력하세요
); };