frigate/web/src/components/image/EventThumbnail.tsx

31 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-02-07 16:46:45 +03:00
import { baseUrl } from "@/api/baseUrl";
import { Event as FrigateEvent } from "@/types/event";
import { LuStar } from "react-icons/lu";
2024-02-08 22:48:30 +03:00
import TimeAgo from "../dynamic/TimeAgo";
2024-02-07 16:46:45 +03:00
type EventThumbnailProps = {
event: FrigateEvent;
onFavorite?: (e: Event, event: FrigateEvent) => void;
};
export function EventThumbnail({ event, onFavorite }: EventThumbnailProps) {
return (
<div
2024-02-08 22:48:30 +03:00
className="relative rounded bg-cover aspect-square h-24 bg-no-repeat bg-center mr-4"
2024-02-07 16:46:45 +03:00
style={{
backgroundImage: `url(${baseUrl}api/events/${event.id}/thumbnail.jpg)`,
}}
>
<LuStar
2024-02-08 22:48:30 +03:00
className="absolute h-6 w-6 text-yellow-300 top-1 right-1 cursor-pointer"
2024-02-07 16:46:45 +03:00
onClick={(e: Event) => (onFavorite ? onFavorite(e, event) : null)}
fill={event.retain_indefinitely ? "currentColor" : "none"}
/>
<div className="absolute bottom-0 w-full h-6 bg-gradient-to-t from-slate-900/50 to-transparent">
<div className="absolute left-1 bottom-0 text-xs text-white w-full">
<TimeAgo time={event.start_time * 1000} dense />
</div>
2024-02-08 22:48:30 +03:00
</div>
2024-02-07 16:46:45 +03:00
</div>
);
}