import React,{CSSProperties, useState} from 'react' import * as Icon from 'react-feather' import { ProgressColor } from '../../utils/colors' import { isUpdatable, isUpdateCompat, PackageInfo } from "../../data/packageInfo" import { ProgressBar } from 'react-bootstrap' import { MyImage } from '../ui/MyImage' const DefaultStyle = (props:any) => { const { hover } = props return { display: "flex", justifyContent: "center", alignItems: "center", flexDirection:"column", textAlign: 'center', cursor: "pointer", backgroundColor: !hover ? "white" : "#ebebeb", opacity: hover ? 0.8 : 1, borderRadius: 10, marginBottom: 10, height: props.height + 50 } as CSSProperties } export interface AppIconProps { className?: string package: PackageInfo width?: number height?: number style?: CSSProperties //body?: JSX.Element //footer?: JSX.Element onClick?: (app: PackageInfo) => void } export const AppIcon = (props: AppIconProps): JSX.Element => { const [onHover,setOnHover] = useState(false) const handleOnHover = (isHover:boolean) =>{ setOnHover(isHover) } const pkg = props.package const status = pkg.status const progressColor = ProgressColor(status) let progress = pkg.progress if (!(progress > 0) && pkg.status === "installing") progress = 95 const _style = { ...DefaultStyle({...props, hover:onHover}), ...props.style} return (
props.onClick(props.package)} onMouseEnter={()=>handleOnHover(true)} onMouseLeave={()=>handleOnHover(false)} >
{props.package.notifications > 0 && ( )} {(pkg.progress <= 0 && isUpdatable(pkg)) && isUpdateCompat(pkg) && () } { (pkg.status === "uninstalled" && pkg.progress === 0) && ( )}
{(!progress || progress <= 0) &&

{pkg.name}

} {progress > 0 && ( )}
) }