diff --git a/src/components/Clauses/Clauses.js b/src/components/Clauses/Clauses.js index 2f9a203..2111add 100644 --- a/src/components/Clauses/Clauses.js +++ b/src/components/Clauses/Clauses.js @@ -23,7 +23,7 @@ import { invalidateAfterClausePurchase } from '../../utils/cacheInvalidation'; const Clauses = () => { const { leagueId, user } = useAuthStore(); const queryClient = useQueryClient(); - const [showAll, setShowAll] = useState(false); + const [availabilityFilter, setAvailabilityFilter] = useState('available'); // 'available', 'all', 'locked' const [clausesData, setClausesData] = useState([]); const [loading, setLoading] = useState(false); const [trendsInitialized, setTrendsInitialized] = useState(false); @@ -300,13 +300,13 @@ const Clauses = () => { } // If values are equal and we're showing all clauses, show available first as tie-breaker - if (comparison === 0 && showAll && a.isLocked !== b.isLocked) { + if (comparison === 0 && availabilityFilter === 'all' && a.isLocked !== b.isLocked) { return a.isLocked ? 1 : -1; } return sortOrder === 'asc' ? -comparison : comparison; }); - }, [sortBy, sortOrder, showAll]); + }, [sortBy, sortOrder, availabilityFilter]); // Fetch all team data and extract clauses const fetchClausesData = useCallback(async (force = false) => { @@ -493,7 +493,7 @@ const Clauses = () => { setClausesData(sortedData); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [sortBy, sortOrder, showAll, ownerFilter, positionFilter]); + }, [sortBy, sortOrder, availabilityFilter, ownerFilter, positionFilter]); const getPositionName = (positionId) => { const positions = { @@ -519,7 +519,9 @@ const Clauses = () => { // Filter data based on settings const filteredClauses = clausesData.filter(clause => { // Filter by availability - if (!showAll && clause.isLocked) return false; + if (availabilityFilter === 'available' && clause.isLocked) return false; + if (availabilityFilter === 'locked' && !clause.isLocked) return false; + // if availabilityFilter === 'all', show everything // Filter by owner if (ownerFilter !== 'all' && clause.ownerName !== ownerFilter) return false; @@ -542,7 +544,11 @@ const Clauses = () => { Cláusulas de Rescisión
- {filteredClauses.length} cláusulas {showAll ? 'totales' : 'disponibles'} + {filteredClauses.length} cláusulas { + availabilityFilter === 'all' ? 'totales' + : availabilityFilter === 'available' ? 'disponibles' + : 'bloqueadas' + } {ownerFilter !== 'all' && ` de ${ownerFilter}`} {positionFilter !== 'all' && ` - ${getPositionName(parseInt(positionFilter))}`} {clausesData.length > 0 && ( @@ -582,65 +588,61 @@ const Clauses = () => {
- {showAll ? + {availabilityFilter === 'all' ? 'No se encontraron jugadores con cláusulas de rescisión' : - 'Todas las cláusulas están actualmente bloqueadas' + availabilityFilter === 'available' ? + 'Todas las cláusulas están actualmente bloqueadas' : + 'No hay cláusulas bloqueadas en este momento' }