import { ImageRecord, useGalleryStore } from '../store' import { ContextMenu, MenuItem, MenuLabel, MenuSeparator, SubMenu } from './menu' import { Tooltip } from './Tooltip' import { CloseIcon, StarIcon } from './icons' /** Right-click menu for an image tile. Shared by the Gallery grid and the Timeline. */ export function ImageContextMenu({ x, y, image, onClose, }: { x: number y: number image: ImageRecord onClose: () => void }) { const openImage = useGalleryStore((state) => state.openImage) const updateImageDetails = useGalleryStore((state) => state.updateImageDetails) const findSimilar = useGalleryStore((state) => state.findSimilar) const albums = useGalleryStore((state) => state.albums) const addToAlbum = useGalleryStore((state) => state.addToAlbum) const canFindSimilar = image.embedding_status === 'ready' return ( openImage(image)} /> void updateImageDetails(image.id, { favorite: !image.favorite })} /> findSimilar(image.id, image.folder_id)} /> {albums.length === 0 ? ( ) : ( albums.map((album) => ( void addToAlbum(album.id, [image.id])} /> )) )} Rating
{Array.from({ length: 5 }, (_, index) => { const rating = index + 1 return ( ) })} {image.rating > 0 ? ( ) : null}
) }