Skip to content
File

Blob: src/client/components/ui/page-cover.tsx

typescript22 lines
1interface PageCoverProps {
2 coverUrl: string;
3 shareToken?: string;
4}
5 
6export function PageCover({ coverUrl, shareToken }: PageCoverProps) {
7 const src = shareToken && coverUrl.startsWith("/uploads/") ? `${coverUrl}?share=${shareToken}` : coverUrl;
8 
9 return (
10 <div className="h-48 overflow-hidden rounded-b-lg">
11 {coverUrl.startsWith("linear-gradient") ? (
12 <div className="h-full w-full" style={{ background: coverUrl }} />
13 ) : (
14 <div className="relative h-full w-full">
15 <img src={src} alt="" className="h-full w-full object-cover" />
16 <div className="pointer-events-none absolute inset-x-0 bottom-0 h-1/3 bg-gradient-to-t from-canvas/70 to-transparent" />
17 </div>
18 )}
19 </div>
20 );
21}