File size: 927 Bytes
f6ea87d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import React from 'react';
import { QueueStatus } from './helpers/Interfaces';
interface QueueStatusIndicatorProps {
queueStatus: QueueStatus;
}
const QueueStatusIndicator: React.FC<QueueStatusIndicatorProps> = ({ queueStatus }) => {
if (!queueStatus.inQueue) return null;
return (
<div className="fixed top-4 right-4 bg-white rounded-lg shadow-lg p-4 z-50">
<div className="flex flex-col gap-2">
{queueStatus.rank === 0 ? (
<p className="text-sm">You're next in line! ({queueStatus.queueSize} total in queue)</p>
) : (
<p className="text-sm">Queue position: {queueStatus.rank! + 1} of {queueStatus.queueSize}</p>
)}
{queueStatus.rankEta && (
<p className="text-sm text-gray-600">
Estimated wait: {Math.ceil(queueStatus.rankEta)} seconds
</p>
)}
</div>
</div>
);
};
export default QueueStatusIndicator; |