import { team as Team, TReadonlyRecord } from '@rondo.dev/common'; import { Button, Panel, PanelBlock, PanelHeading } from 'bloomer'; import React from 'react'; import { FaEdit, FaPlus, FaTimes } from 'react-icons/fa'; import { Link } from 'react-router-dom'; export interface ITeamListProps { ListButtons?: React.ComponentType<{team: Team.Team}> teamsById: TReadonlyRecord teamIds: ReadonlyArray onAddTeam: Team.TeamActions['create'] onRemoveTeam: Team.TeamActions['remove'] } export interface ITeamProps { ListButtons?: React.ComponentType<{team: Team.Team}> team: Team.Team onRemoveTeam: Team.TeamActions['remove'] } export class TeamRow extends React.PureComponent { handleRemove = async () => { const {onRemoveTeam, team: {id}} = this.props await onRemoveTeam({id}).payload } render() { const {team, ListButtons} = this.props return (
{team.name}
{!!ListButtons && }    
) } } export class TeamList extends React.PureComponent { render() { const {teamIds, teamsById} = this.props return ( Teams   New {teamIds.map(teamId => { const team = teamsById[teamId] return ( ) })} ) } }