@@ -50,6 +50,7 @@ export default function InitScreen() {
5050 const [ errorType , setErrorType ] = useState < "connection" | "auth" | null > ( null )
5151 const [ canSkipUpdate , setCanSkipUpdate ] = useState ( false )
5252 const [ loadingStatus , setLoadingStatus ] = useState < string > ( translate ( "versionCheck:checkingForUpdates" ) )
53+ const [ isRetrying , setIsRetrying ] = useState ( false )
5354
5455 // Helper Functions
5556 const getLocalVersion = ( ) : string | null => {
@@ -135,10 +136,15 @@ export default function InitScreen() {
135136 }
136137 }
137138
138- const checkCloudVersion = async ( ) : Promise < void > => {
139- setState ( "loading" )
139+ const checkCloudVersion = async ( isRetry = false ) : Promise < void > => {
140+ // Only show loading screen on initial load, not on retry
141+ if ( ! isRetry ) {
142+ setState ( "loading" )
143+ setLoadingStatus ( translate ( "versionCheck:checkingForUpdates" ) )
144+ } else {
145+ setIsRetrying ( true )
146+ }
140147 setErrorType ( null )
141- setLoadingStatus ( translate ( "versionCheck:checkingForUpdates" ) )
142148
143149 try {
144150 const localVer = getLocalVersion ( )
@@ -148,6 +154,7 @@ export default function InitScreen() {
148154 console . error ( "Failed to get local version" )
149155 setErrorType ( "connection" )
150156 setState ( "error" )
157+ setIsRetrying ( false )
151158 return
152159 }
153160
@@ -158,19 +165,23 @@ export default function InitScreen() {
158165 if ( semver . lt ( localVer , recommended ) ) {
159166 setState ( "outdated" )
160167 setCanSkipUpdate ( ! semver . lt ( localVer , required ) )
168+ setIsRetrying ( false )
161169 return
162170 }
171+ setIsRetrying ( false )
163172 checkLoggedIn ( )
164173 } catch ( error ) {
165174 console . error ( "Failed to fetch cloud version:" , error )
166175 setErrorType ( "connection" )
167176 setState ( "error" )
177+ setIsRetrying ( false )
168178 return
169179 }
170180 } catch ( error ) {
171181 console . error ( "Version check failed:" , error )
172182 setErrorType ( "connection" )
173183 setState ( "error" )
184+ setIsRetrying ( false )
174185 }
175186 }
176187
@@ -191,7 +202,7 @@ export default function InitScreen() {
191202 await saveSetting ( SETTINGS_KEYS . CUSTOM_BACKEND_URL , null )
192203 await bridge . setServerUrl ( "" )
193204 setIsUsingCustomUrl ( false )
194- await checkCloudVersion ( )
205+ await checkCloudVersion ( true ) // Pass true for retry to avoid flash
195206 } catch ( error ) {
196207 console . error ( "Failed to reset URL:" , error )
197208 }
@@ -213,7 +224,7 @@ export default function InitScreen() {
213224 iconColor : theme . colors . error ,
214225 title : "Connection Error" ,
215226 description : isUsingCustomUrl
216- ? "Could not connect to the custom server. Please try resetting the URL to the default or check your connection."
227+ ? "Could not connect to the custom server. Please try using the default server or check your connection."
217228 : "Could not connect to the server. Please check your connection and try again." ,
218229 }
219230
@@ -279,9 +290,13 @@ export default function InitScreen() {
279290 < View style = { themed ( $buttonContainer ) } >
280291 { state === "error" && (
281292 < Button
282- onPress = { checkCloudVersion }
293+ onPress = { ( ) => checkCloudVersion ( true ) }
283294 style = { themed ( $primaryButton ) }
284- text = { translate ( "versionCheck:retryConnection" ) }
295+ text = { isRetrying ? translate ( "versionCheck:retrying" ) : translate ( "versionCheck:retryConnection" ) }
296+ disabled = { isRetrying }
297+ LeftAccessory = {
298+ isRetrying ? ( ) => < ActivityIndicator size = "small" color = { theme . colors . textAlt } /> : undefined
299+ }
285300 />
286301 ) }
287302
@@ -298,8 +313,12 @@ export default function InitScreen() {
298313 < Button
299314 onPress = { handleResetUrl }
300315 style = { themed ( $secondaryButton ) }
301- text = { translate ( "versionCheck:resetUrl" ) }
316+ text = { isRetrying ? translate ( "versionCheck:resetting" ) : translate ( "versionCheck:resetUrl" ) }
302317 preset = "reversed"
318+ disabled = { isRetrying }
319+ LeftAccessory = {
320+ isRetrying ? ( ) => < ActivityIndicator size = "small" color = { theme . colors . text } /> : undefined
321+ }
303322 />
304323 ) }
305324
0 commit comments