|
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