|
8 | 8 | } from '../../context/selectors'; |
9 | 9 | import TeamsActions from './TeamsActions'; |
10 | 10 | import PropTypes from 'prop-types'; |
11 | | -import { TextField } from '@mui/material'; |
| 11 | +import { FormControlLabel, Switch, TextField } from '@mui/material'; |
12 | 12 | import './TeamResults.css'; |
13 | 13 | import SkeletonLoader from '../skeleton_loader/SkeletonLoader'; |
14 | 14 | import { useQueryParameters } from '../../helpers/query-parameters'; |
@@ -40,22 +40,11 @@ const TeamResults = () => { |
40 | 40 | const { state } = useContext(AppContext); |
41 | 41 | const loading = selectTeamsLoading(state); |
42 | 42 | const [addingTeam, setAddingTeam] = useState(false); |
| 43 | + const [activeTeams, setActiveTeams] = useState(true); |
43 | 44 | const [searchText, setSearchText] = useState(''); |
44 | 45 | const [selectedTeamId, setSelectedTeamId] = useState(''); |
45 | 46 | const teams = selectNormalizedTeams(state, searchText); |
46 | 47 |
|
47 | | - const teamCards = teams.map((team, index) => { |
48 | | - return ( |
49 | | - <TeamSummaryCard |
50 | | - key={`team-summary-${team.id}`} |
51 | | - index={index} |
52 | | - team={team} |
53 | | - onTeamSelect={setSelectedTeamId} |
54 | | - selectedTeamId={selectedTeamId} |
55 | | - /> |
56 | | - ); |
57 | | - }); |
58 | | - |
59 | 48 | useQueryParameters([ |
60 | 49 | { |
61 | 50 | name: 'addNew', |
@@ -89,16 +78,41 @@ const TeamResults = () => { |
89 | 78 | setSearchText(e.target.value); |
90 | 79 | }} |
91 | 80 | /> |
92 | | - <TeamsActions isOpen={addingTeam} onOpen={setAddingTeam} /> |
| 81 | + <div className="team-actions"> |
| 82 | + <TeamsActions isOpen={addingTeam} onOpen={setAddingTeam} /> |
| 83 | + <FormControlLabel |
| 84 | + control={ |
| 85 | + <Switch |
| 86 | + checked={activeTeams} |
| 87 | + onChange={event => { |
| 88 | + const { checked } = event.target; |
| 89 | + setActiveTeams(checked); |
| 90 | + }} |
| 91 | + /> |
| 92 | + } |
| 93 | + label="Active Teams Only" |
| 94 | + /> |
| 95 | + </div> |
93 | 96 | </div> |
94 | 97 | <div className="teams"> |
95 | 98 | {loading |
96 | 99 | ? Array.from({ length: 20 }).map((_, index) => ( |
97 | 100 | <SkeletonLoader key={index} type="team" /> |
98 | 101 | )) |
99 | | - : teams?.length && !loading |
100 | | - ? teamCards |
101 | | - : null} |
| 102 | + : teams.filter((team) => !activeTeams || |
| 103 | + (activeTeams && team.active)) |
| 104 | + .map((team, index) => { |
| 105 | + return ( |
| 106 | + <TeamSummaryCard |
| 107 | + key={`team-summary-${team.id}`} |
| 108 | + index={index} |
| 109 | + team={team} |
| 110 | + onTeamSelect={setSelectedTeamId} |
| 111 | + selectedTeamId={selectedTeamId} |
| 112 | + /> |
| 113 | + ); |
| 114 | + }) |
| 115 | + } |
102 | 116 | </div> |
103 | 117 | </Root> |
104 | 118 | ); |
|
0 commit comments