import React from "react"; import { View, StyleSheet, Platform, ActivityIndicator } from "react-native"; import { ThemedText } from "../ThemedText"; import { StyledButton } from "../StyledButton"; import { useUpdateStore } from "@/stores/updateStore"; import { UPDATE_CONFIG } from "@/constants/UpdateConfig"; export function UpdateSection() { const { currentVersion, remoteVersion, updateAvailable, downloading, downloadProgress, checkForUpdate } = useUpdateStore(); const [checking, setChecking] = React.useState(false); const handleCheckUpdate = async () => { setChecking(true); try { await checkForUpdate(false); } finally { setChecking(false); } }; return ( 应用更新 当前版本 v{currentVersion} {updateAvailable && ( 最新版本 v{remoteVersion} )} {downloading && ( 下载进度 {downloadProgress}% )} {checking ? ( ) : ( 检查更新 )} {/* {UPDATE_CONFIG.AUTO_CHECK && ( 自动检查更新已开启,每{UPDATE_CONFIG.CHECK_INTERVAL / (60 * 60 * 1000)}小时检查一次 )} */} ); } const styles = StyleSheet.create({ sectionContainer: { marginBottom: 24, padding: 16, backgroundColor: Platform.select({ ios: "rgba(255, 255, 255, 0.05)", android: "rgba(255, 255, 255, 0.05)", default: "transparent", }), borderRadius: 8, }, sectionTitle: { fontSize: Platform.isTV ? 24 : 20, fontWeight: "bold", marginBottom: 16, paddingTop: 8, }, row: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", marginBottom: 12, }, label: { fontSize: Platform.isTV ? 18 : 16, color: "#999", }, value: { fontSize: Platform.isTV ? 18 : 16, }, newVersion: { color: "#00bb5e", fontWeight: "bold", }, buttonContainer: { flexDirection: "row", gap: 12, marginTop: 16, justifyContent: "center", // 居中对齐 alignItems: "center", }, button: { width: "90%", ...(Platform.isTV && { // TV平台焦点样式 borderWidth: 2, borderColor: "transparent", }), }, buttonText: { color: "#ffffff", fontSize: Platform.isTV ? 16 : 14, fontWeight: "500", }, hint: { fontSize: Platform.isTV ? 14 : 12, color: "#666", marginTop: 12, textAlign: "center", }, });