feat: 添加获取当前分支信息的功能,并在界面上显示版本号和分支信息
This commit is contained in:
parent
f6f46f518f
commit
43857594d2
54
app/auth.tsx
54
app/auth.tsx
|
|
@ -1,11 +1,12 @@
|
||||||
import { Ionicons } from '@expo/vector-icons'
|
import { Ionicons } from '@expo/vector-icons'
|
||||||
import { Block, Input, Text, Toast } from '@share/components'
|
import { Block, Input, Text, Toast } from '@share/components'
|
||||||
import { router } from 'expo-router'
|
import { router } from 'expo-router'
|
||||||
|
import * as Updates from 'expo-updates'
|
||||||
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||||
import { TextInput } from 'react-native'
|
import { TextInput } from 'react-native'
|
||||||
import { KeyboardAwareScrollView } from 'react-native-keyboard-controller'
|
import { KeyboardAwareScrollView } from 'react-native-keyboard-controller'
|
||||||
|
|
||||||
import { APP_VERSION } from '@/app.config'
|
import { APP_VERSION, VERSION } from '@/app.config'
|
||||||
import BannerSection from '@/components/BannerSection'
|
import BannerSection from '@/components/BannerSection'
|
||||||
import { getSession, phoneNumber, setAuthToken, signIn } from '@/lib/auth'
|
import { getSession, phoneNumber, setAuthToken, signIn } from '@/lib/auth'
|
||||||
import { isValidPhone } from '@/utils'
|
import { isValidPhone } from '@/utils'
|
||||||
|
|
@ -29,8 +30,55 @@ export default function Auth() {
|
||||||
const [loading, setLoading] = useState(false)
|
const [loading, setLoading] = useState(false)
|
||||||
const [countdown, setCountdown] = useState(0)
|
const [countdown, setCountdown] = useState(0)
|
||||||
const [agreed, setAgreed] = useState(false)
|
const [agreed, setAgreed] = useState(false)
|
||||||
|
const [currentBranch, setCurrentBranch] = useState<string>('unknown')
|
||||||
const countdownTimerRef = useRef<ReturnType<typeof setInterval> | null>(null)
|
const countdownTimerRef = useRef<ReturnType<typeof setInterval> | null>(null)
|
||||||
|
|
||||||
|
// 获取当前分支信息
|
||||||
|
useEffect(() => {
|
||||||
|
const getBranchInfo = async () => {
|
||||||
|
try {
|
||||||
|
if (!Updates.isEnabled) {
|
||||||
|
setCurrentBranch('development')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 方法1: 使用 Updates.manifest (同步)
|
||||||
|
const manifest = Updates.manifest
|
||||||
|
|
||||||
|
// 方法2: 或者尝试从更新中获取
|
||||||
|
let branch = 'production' // 默认值
|
||||||
|
|
||||||
|
if (manifest?.extra?.eas?.branch) {
|
||||||
|
branch = manifest.extra.eas.branch
|
||||||
|
} else if (manifest?.metadata?.branchName) {
|
||||||
|
branch = manifest.metadata.branchName
|
||||||
|
} else if (Updates.channel) {
|
||||||
|
branch = Updates.channel
|
||||||
|
}
|
||||||
|
|
||||||
|
// 方法3: 尝试获取当前运行的更新信息
|
||||||
|
try {
|
||||||
|
const currentlyRunning = await Updates.fetchUpdateAsync()
|
||||||
|
if (currentlyRunning.manifest?.extra?.eas?.branch) {
|
||||||
|
branch = currentlyRunning.manifest.extra.eas.branch
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log('Failed to fetch current update:', e)
|
||||||
|
}
|
||||||
|
|
||||||
|
setCurrentBranch(branch)
|
||||||
|
console.log('Current branch:', branch)
|
||||||
|
console.log('Updates.channel:', Updates.channel)
|
||||||
|
console.log('Manifest:', manifest)
|
||||||
|
} catch (error) {
|
||||||
|
console.warn('Failed to get branch info:', error)
|
||||||
|
setCurrentBranch('unknown')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getBranchInfo()
|
||||||
|
}, [])
|
||||||
|
|
||||||
const canSendCode = useMemo(() => {
|
const canSendCode = useMemo(() => {
|
||||||
return isValidPhone(phone) && countdown === 0
|
return isValidPhone(phone) && countdown === 0
|
||||||
}, [phone, countdown])
|
}, [phone, countdown])
|
||||||
|
|
@ -451,7 +499,9 @@ export default function Auth() {
|
||||||
|
|
||||||
<Block className="mt-[24px] items-center">
|
<Block className="mt-[24px] items-center">
|
||||||
<Text className="font-700 text-[12px] text-gray-400">© 2025 LOOMART. All rights reserved.</Text>
|
<Text className="font-700 text-[12px] text-gray-400">© 2025 LOOMART. All rights reserved.</Text>
|
||||||
<Text className="font-700 text-[12px] text-gray-400">当前版本号: {APP_VERSION}</Text>
|
<Text className="font-700 text-[12px] text-gray-400">
|
||||||
|
版本号: {VERSION} - {APP_VERSION} - {currentBranch}
|
||||||
|
</Text>
|
||||||
</Block>
|
</Block>
|
||||||
</Block>
|
</Block>
|
||||||
</Block>
|
</Block>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue