Skip to content

Commit 9a60773

Browse files
committed
clean up this screen visually
1 parent e819e4c commit 9a60773

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

mobile/src/app/init.tsx

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

mobile/src/i18n/en.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ const en = {
2020
update: "Update",
2121
retryConnection: "Retry Connection",
2222
skipUpdate: "Skip Update",
23-
continueAnyways: "Continue Anyways",
24-
resetUrl: "Reset to Default URL",
23+
continueAnyway: "Continue Anyway",
24+
resetUrl: "Switch to Default Server",
2525
connectingToServer: "Connecting to server...",
2626
},
2727
simulatedGlasses: {

0 commit comments

Comments
 (0)