import React, { useState } from 'react' import { useModal as useModal } from '~utils/useModal' import SearchModal from '~components/SearchModal' import WeaponUnit from '~components/WeaponUnit' import ExtraWeapons from '~components/ExtraWeapons' import './index.scss' // GridType export enum GridType { Class, Character, Weapon, Summon } // Props interface Props { userId?: string partyId?: string mainhand?: GridWeapon | undefined grid: GridArray extra: boolean editable: boolean exists: boolean found?: boolean onSelect: (type: GridType, weapon: Weapon, position: number) => void } const WeaponGrid = (props: Props) => { const { open, openModal, closeModal } = useModal() const [searchPosition, setSearchPosition] = useState(0) const numWeapons: number = 9 const searchGrid: GridArray = Object.values(props.grid).map((o) => o.weapon) const extraGrid = ( ) function receiveWeapon(weapon: Weapon, position: number) { props.onSelect(GridType.Weapon, weapon, position) } function sendData(object: Character | Weapon | Summon, position: number) { if (isWeapon(object)) { receiveWeapon(object, position) } } function isWeapon(object: Character | Weapon | Summon): object is Weapon { return (object as Weapon).proficiency !== undefined } function openSearchModal(position: number) { setSearchPosition(position) openModal() } function updateUncap(id: string, uncap: number) { console.log(`${id} is now ${uncap} stars`) } return (
{ openSearchModal(-1) }} updateUncap={updateUncap} />
    { Array.from(Array(numWeapons)).map((x, i) => { return (
  • { openSearchModal(i) }} updateUncap={updateUncap} />
  • ) }) }
{ (() => { if(props.extra) { return extraGrid } })() } {open ? ( ) : null}
) } export default WeaponGrid