criação do website

This commit is contained in:
2026-05-05 17:12:06 +01:00
parent 9c36b714f1
commit 732e7276b7
46 changed files with 9844 additions and 0 deletions

38
src/hooks/useMatches.ts Normal file
View File

@@ -0,0 +1,38 @@
import { useState, useEffect } from 'react';
import { ref, onValue } from 'firebase/database';
import { db } from '../lib/firebase';
import type { Match, Escalao } from '../types/database';
export function useMatches(escalao: Escalao, jornada: number) {
const [matches, setMatches] = useState<Match[]>([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<Error | null>(null);
useEffect(() => {
// Referência para jornadas/[escalao]/[numero_jornada]
const matchesRef = ref(db, `jornadas/${escalao}/${jornada}`);
const unsubscribe = onValue(matchesRef, (snapshot) => {
const data = snapshot.val();
if (data) {
// Converte o objeto { "id": matchData } num array de Match
const matchesList: Match[] = Object.entries(data).map(([id, matchData]: [string, any]) => ({
id,
...matchData,
jornadaId: jornada.toString()
}));
setMatches(matchesList);
} else {
setMatches([]);
}
setLoading(false);
}, (err) => {
setError(err);
setLoading(false);
});
return () => unsubscribe();
}, [escalao, jornada]);
return { matches, loading, error };
}