优化比赛卡片显示,添加球队名称和logo,调整样式;更新实时比分功能,简化数据处理逻辑
This commit is contained in:
@@ -322,11 +322,6 @@ export default function HomeScreen() {
|
||||
deviceTimeZone,
|
||||
);
|
||||
|
||||
//将isLive全改为true
|
||||
list.forEach((m) => {
|
||||
(m as Match).isLive = true;
|
||||
});
|
||||
|
||||
const normalizeDate = (d: Date) => {
|
||||
const year = d.getFullYear();
|
||||
const month = String(d.getMonth() + 1).padStart(2, "0");
|
||||
@@ -340,8 +335,8 @@ export default function HomeScreen() {
|
||||
|
||||
let merged: Match[] = list.map((m) => ({
|
||||
...m,
|
||||
date: (m as any).date || selectedStr,
|
||||
sportId: (m as any).sportId ?? sportId,
|
||||
date: m.date || selectedStr,
|
||||
sportId: m.sportId ?? sportId,
|
||||
}));
|
||||
|
||||
if (shouldMergeLive) {
|
||||
@@ -368,10 +363,16 @@ export default function HomeScreen() {
|
||||
return {
|
||||
id,
|
||||
league: item.league_name,
|
||||
leagueName: item.league_name,
|
||||
leagueLogo: item.league_logo,
|
||||
time: formatLiveTime(item.event_status, item.event_time),
|
||||
date: item.event_date,
|
||||
home: item.event_home_team,
|
||||
away: item.event_away_team,
|
||||
homeTeamName: item.event_home_team,
|
||||
awayTeamName: item.event_away_team,
|
||||
homeTeamLogo: item.home_team_logo,
|
||||
awayTeamLogo: item.away_team_logo,
|
||||
scoreText: item.event_final_result || "0 - 0",
|
||||
fav: false,
|
||||
sportId: sportId,
|
||||
@@ -415,18 +416,11 @@ export default function HomeScreen() {
|
||||
);
|
||||
}
|
||||
|
||||
const isLiveRow = (m: Match) => {
|
||||
const t = (m.time || "").trim();
|
||||
return (
|
||||
/\d+'$/.test(t) || /^\d{1,3}$/.test(t) || /\b(ht|half)\b/i.test(t)
|
||||
);
|
||||
};
|
||||
|
||||
// 收藏置顶,其次直播置顶
|
||||
const sortedList = [...listWithFavStatus].sort((a, b) => {
|
||||
if (a.fav !== b.fav) return a.fav ? -1 : 1;
|
||||
const aLive = isLiveRow(a);
|
||||
const bLive = isLiveRow(b);
|
||||
const aLive = !!a.isLive;
|
||||
const bLive = !!b.isLive;
|
||||
if (aLive !== bLive) return aLive ? -1 : 1;
|
||||
return 0;
|
||||
});
|
||||
@@ -597,7 +591,6 @@ export default function HomeScreen() {
|
||||
onSelectDate={updateDate}
|
||||
/>
|
||||
)}
|
||||
|
||||
</ThemedView>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ export default function LiveScreen() {
|
||||
const liveData = await fetchLiveScore(
|
||||
state.selectedSportId,
|
||||
state.selectedLeagueKey ? parseInt(state.selectedLeagueKey) : undefined,
|
||||
state.timezone
|
||||
state.timezone,
|
||||
);
|
||||
|
||||
// 检查返回的数据是否为空或无效
|
||||
@@ -56,9 +56,15 @@ export default function LiveScreen() {
|
||||
const converted: Match[] = liveData.map((item: LiveScoreMatch) => ({
|
||||
id: item.event_key.toString(),
|
||||
league: item.league_name,
|
||||
leagueName: item.league_name,
|
||||
leagueLogo: item.league_logo,
|
||||
time: item.event_time,
|
||||
home: item.event_home_team,
|
||||
away: item.event_away_team,
|
||||
homeTeamName: item.event_home_team,
|
||||
awayTeamName: item.event_away_team,
|
||||
homeTeamLogo: item.home_team_logo,
|
||||
awayTeamLogo: item.away_team_logo,
|
||||
meta: item.event_status,
|
||||
scoreText: item.event_final_result || "0 - 0",
|
||||
fav: false,
|
||||
@@ -66,7 +72,6 @@ export default function LiveScreen() {
|
||||
sportId: state.selectedSportId ?? undefined,
|
||||
isLive: true,
|
||||
date: item.event_date,
|
||||
// sport: item.sport_name,
|
||||
}));
|
||||
|
||||
const token = await storage.getAccessToken();
|
||||
@@ -83,7 +88,7 @@ export default function LiveScreen() {
|
||||
console.error(`Check favorite failed for match ${m.id}:`, error);
|
||||
return m;
|
||||
}
|
||||
})
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -104,7 +109,7 @@ export default function LiveScreen() {
|
||||
const handleFavoriteToggle = (matchId: string, isFav: boolean) => {
|
||||
setMatches((prev) => {
|
||||
const updated = prev.map((m) =>
|
||||
m.id === matchId ? { ...m, fav: isFav } : m
|
||||
m.id === matchId ? { ...m, fav: isFav } : m,
|
||||
);
|
||||
return [...updated].sort((a, b) => {
|
||||
if (a.fav === b.fav) return 0;
|
||||
|
||||
Reference in New Issue
Block a user