import React, { useEffect, useState } from 'react' import classNames from 'classnames' import { formatTimeAgo } from '~utils/timeAgo' import './index.scss' interface Props { shortcode: string name: string raid: Raid grid: GridWeapon[] updatedAt: Date onClick: (shortcode: string) => void } const GridRep = (props: Props) => { const numWeapons: number = 9 const [mainhand, setMainhand] = useState() const [weapons, setWeapons] = useState>({}) const titleClass = classNames({ 'empty': !props.name }) const raidClass = classNames({ 'raid': true, 'empty': !props.raid }) useEffect(() => { const newWeapons = Array(numWeapons) for (const [key, value] of Object.entries(props.grid)) { if (value.position == -1) setMainhand(value.object) else if (!value.mainhand && value.position != null) newWeapons[value.position] = value.object } setWeapons(newWeapons) }, [props.grid]) function navigate() { props.onClick(props.shortcode) } function generateMainhandImage() { return (mainhand) ? {mainhand?.name.en} : '' } function generateGridImage(position: number) { return (weapons[position]) ? {weapons[position]?.name.en} : '' } return (

{ (props.name) ? props.name : 'Untitled' }

{ (props.raid) ? props.raid.name.en : 'No raid set' }
{generateMainhandImage()}
    { Array.from(Array(numWeapons)).map((x, i) => { return (
  • {generateGridImage(i)}
  • ) }) }
) } export default GridRep