44 lines
1.2 KiB
React
44 lines
1.2 KiB
React
import { FaEye } from 'react-icons/fa6'
|
|
import { createPreviewLink } from '../lib/teamApi'
|
|
import { openInNewTab } from '../lib/openInNewTab'
|
|
|
|
// Mit subdomain holt der Knopf einen Einmal-Link vom Portal (Mitarbeiter sind dort nicht mehr angemeldet);
|
|
// ohne subdomain bleibt er ein einfacher Link.
|
|
export default function PreviewLinkButton({ href, subdomain, title = 'Preview oeffnen', size = 16 }) {
|
|
if (!href) return null
|
|
|
|
const open = (event) => {
|
|
if (!subdomain) return
|
|
event.preventDefault()
|
|
openInNewTab(() => createPreviewLink({ subdomain, previewUrl: href })).catch((err) =>
|
|
window.alert(err.message || 'Die Preview konnte nicht geöffnet werden.')
|
|
)
|
|
}
|
|
|
|
return (
|
|
<a
|
|
href={href}
|
|
onClick={open}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
title={title}
|
|
aria-label={title}
|
|
style={{
|
|
display: 'inline-flex',
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
width: 32,
|
|
height: 32,
|
|
borderRadius: 6,
|
|
background: 'rgba(16, 185, 129, 0.15)',
|
|
border: '1px solid rgba(16, 185, 129, 0.35)',
|
|
color: '#34d399',
|
|
textDecoration: 'none',
|
|
flexShrink: 0,
|
|
}}
|
|
>
|
|
<FaEye size={size} />
|
|
</a>
|
|
)
|
|
}
|