agregado filtro de eventos por sala en la que se realizaron
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { ref, computed, watch } from 'vue';
|
||||
import { ref, computed } from 'vue';
|
||||
|
||||
export interface DetailedEvent {
|
||||
kind: string;
|
||||
@@ -6,17 +6,20 @@ export interface DetailedEvent {
|
||||
gameVariant?: string;
|
||||
playerUuid?: string;
|
||||
playerName?: string;
|
||||
roomId?: string;
|
||||
}
|
||||
|
||||
export type DataSource = 'aggregated' | 'active-rooms';
|
||||
export type RoundFilter = 'all' | 1 | 2 | 3;
|
||||
export type GameFilter = 'all' | 'G1' | 'G2' | 'G3' | 'G4' | 'G5';
|
||||
export type RoomFilter = 'all' | string;
|
||||
|
||||
export function useEventFilters() {
|
||||
// Filter states
|
||||
const dataSource = ref<DataSource>('aggregated');
|
||||
const roundFilter = ref<RoundFilter>('all');
|
||||
const gameFilter = ref<GameFilter>('all');
|
||||
const roomFilter = ref<RoomFilter>('all');
|
||||
|
||||
// Event data stores
|
||||
const detailedEventsAggregated = ref<DetailedEvent[]>([]);
|
||||
@@ -33,7 +36,7 @@ export function useEventFilters() {
|
||||
? detailedEventsAggregated.value
|
||||
: detailedEventsActiveRooms.value;
|
||||
|
||||
// Filter events based on round and game
|
||||
// Filter events based on round, game, and room
|
||||
const filteredEvents = sourceEvents.filter(event => {
|
||||
if (roundFilter.value !== 'all' && event.round !== roundFilter.value) {
|
||||
return false;
|
||||
@@ -41,6 +44,9 @@ export function useEventFilters() {
|
||||
if (gameFilter.value !== 'all' && event.gameVariant !== gameFilter.value) {
|
||||
return false;
|
||||
}
|
||||
if (roomFilter.value !== 'all' && event.roomId !== roomFilter.value) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
@@ -71,6 +77,7 @@ export function useEventFilters() {
|
||||
function resetFilters() {
|
||||
roundFilter.value = 'all';
|
||||
gameFilter.value = 'all';
|
||||
roomFilter.value = 'all';
|
||||
}
|
||||
|
||||
// Computed properties
|
||||
@@ -83,13 +90,14 @@ export function useEventFilters() {
|
||||
);
|
||||
|
||||
const hasActiveFilters = computed(() =>
|
||||
roundFilter.value !== 'all' || gameFilter.value !== 'all'
|
||||
roundFilter.value !== 'all' || gameFilter.value !== 'all' || roomFilter.value !== 'all'
|
||||
);
|
||||
|
||||
const filterSummary = computed(() => {
|
||||
const parts = [];
|
||||
if (roundFilter.value !== 'all') parts.push(`Round ${roundFilter.value}`);
|
||||
if (gameFilter.value !== 'all') parts.push(`Game ${gameFilter.value}`);
|
||||
if (roomFilter.value !== 'all') parts.push(`Room ${roomFilter.value.slice(0, 8)}`);
|
||||
return parts.length > 0 ? parts.join(' + ') : 'Sin filtros';
|
||||
});
|
||||
|
||||
@@ -98,6 +106,7 @@ export function useEventFilters() {
|
||||
dataSource,
|
||||
roundFilter,
|
||||
gameFilter,
|
||||
roomFilter,
|
||||
detailedEventsAggregated,
|
||||
detailedEventsActiveRooms,
|
||||
globalEventCounts,
|
||||
|
||||
Reference in New Issue
Block a user