// import { AnimatePresence } from 'motion/react'; // import { MouseEvent, useMemo, useState } from 'react'; // import { Link } from 'react-router'; // import styles from './item-detail.module.css'; // import { ItemCardControls } from '/@/renderer/components/item-card/item-card-controls'; // import { useFastAverageColor } from '/@/renderer/hooks'; // import { ActionIcon } from '/@/shared/components/action-icon/action-icon'; // import { Badge } from '/@/shared/components/badge/badge'; // import { Divider } from '/@/shared/components/divider/divider'; // import { Group } from '/@/shared/components/group/group'; // import { Image } from '/@/shared/components/image/image'; // import { Rating } from '/@/shared/components/rating/rating'; // import { Text } from '/@/shared/components/text/text'; // import { // Album, // AlbumArtist, // Artist, // LibraryItem, // Playlist, // Song, // } from '/@/shared/types/domain-types'; // import { stringToColor } from '/@/shared/utils/string-to-color'; // interface ItemDetailProps { // data: Album | AlbumArtist | Artist | Playlist | Song | undefined; // itemHeight: number; // itemType: LibraryItem; // onClick?: (e: MouseEvent, item: unknown, itemType: LibraryItem) => void; // withControls?: boolean; // } // export const ItemDetail = ({ data, itemType, onClick, withControls }: ItemDetailProps) => { // const imageUrl = getImageUrl(data); // const [showControls, setShowControls] = useState(false); // const { background } = useFastAverageColor({ // algorithm: 'simple', // src: imageUrl, // srcLoaded: false, // }); // // const tags = [...(data?.genres ?? [])]; // const tags = useMemo(() => { // if (!data) { // return []; // } // const items: { // color?: string; // id: string; // isLight?: boolean; // itemType: LibraryItem; // name: string; // }[] = []; // if ('albumArtists' in data && Array.isArray(data.albumArtists)) { // data.albumArtists?.forEach((tag: { id: string; name: string }) => { // items.push({ id: tag.id, itemType: LibraryItem.ALBUM_ARTIST, name: tag.name }); // }); // } // if ('genres' in data && Array.isArray(data.genres)) { // data.genres?.forEach((tag: { id: string; itemType: LibraryItem; name: string }) => { // const { color, isLight } = stringToColor(tag.name); // items.push({ ...tag, color, isLight }); // }); // } // // if ('tags' in data && typeof data.tags === 'object') { // // console.log('data.tags :>> ', data.tags); // // Object.entries(data.tags).forEach(([key, value]) => { // // items.push({ id: key, itemType: LibraryItem.TAG, name: value }); // // }); // // } // return items; // }, [data]); // return ( //
onClick?.(e, data, itemType)} // style={{ backgroundColor: background }} // > //
withControls && setShowControls(true)} // onMouseLeave={() => withControls && setShowControls(false)} // > // {data?.name} // // {withControls && showControls && } // //
//
//
// // {data?.name} // // // {data && 'userRating' in data && ( // // )} // {data && 'userFavorite' in data && ( // // )} // //
// //
// // {tags.map((tag) => ( // // {tag.name} // // ))} // //
//
//
// ); // }; // const getImageUrl = (data: Album | AlbumArtist | Artist | Playlist | Song | undefined) => { // if (data && 'imageUrl' in data) { // return data.imageUrl || undefined; // } // return undefined; // };