+
+ {/* Row 2: Demographics with pipe separators */}
+
- DOB: {patient.dob}
+ DOB:{' '}
+ {patient.dob}
|
NHS No:{' '}
-
- {patient.nhsNumber}
-
+
|
{patient.address}
-
+
+ {/* Row 3: Contact details */}
+
+
+ {/* Action buttons */}
}
@@ -194,18 +243,19 @@ function CondensedBanner() {
return (
-
+
{patient.name}
|
- NHS No:{' '}
-
- {patient.nhsNumber}
-
+ NHS No:{' '}
+
|
-
+
+
+ {patient.status}
+
| null>(null)
+
+ const handleMouseEnter = () => {
+ timeoutRef.current = setTimeout(() => setShowTooltip(true), 300)
+ }
+
+ const handleMouseLeave = () => {
+ if (timeoutRef.current) {
+ clearTimeout(timeoutRef.current)
+ timeoutRef.current = null
+ }
+ setShowTooltip(false)
+ }
+
+ useEffect(() => {
+ return () => {
+ if (timeoutRef.current) clearTimeout(timeoutRef.current)
+ }
+ }, [])
+
+ return (
+ setShowTooltip(true)}
+ onBlur={() => setShowTooltip(false)}
+ >
+
+ {patient.nhsNumber}
+
+
+ {showTooltip && (
+
+ {patient.nhsNumberTooltip}
+
+
+ )}
+
+
+ )
+}
+
interface StatusDotProps {
status: string
}
@@ -245,7 +359,7 @@ interface StatusBadgeProps {
function StatusBadge({ badge }: StatusBadgeProps) {
return (
-
+
{badge}
)
@@ -269,10 +383,11 @@ function ActionButton({ icon, label, href, external, compact }: ActionButtonProp
inline-flex items-center gap-1.5
border border-pmr-nhsblue text-pmr-nhsblue
hover:bg-pmr-nhsblue hover:text-white
- transition-colors duration-100
+ transition-colors duration-150
rounded
+ font-ui font-medium
+ focus:outline-none focus:ring-2 focus:ring-pmr-nhsblue/40 focus:ring-offset-1 focus:ring-offset-pmr-banner
${compact ? 'px-2 py-1 text-xs' : 'px-3 py-1.5 text-sm'}
- font-inter font-medium
`}
>
{icon}