Skip to content

Commit 5c29e54

Browse files
committed
docs(mobile-client): add feature description for status pages
- Create new documentation page explaining critical, app-wide status pages - Describe the functionality and purpose of status pages in mobile client - Include information on maintenance page, update required page, and initial status page - Explain the technical implementation and routing architecture
1 parent b936e6c commit 5c29e54

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: 'Feature: Status Pages'
3+
description: Learn about the critical, app-wide status pages for maintenance and required updates.
4+
---
5+
import { Card, CardGrid, Aside } from '@astrojs/starlight/components';
6+
7+
The mobile client includes a set of full-screen status pages designed to handle critical, app-wide states. These pages are a key part of the [two-tiered routing architecture](/docs/mobile-client/architecture/routing) and are displayed *before* the main application UI and router are ever built.
8+
9+
This mechanism is triggered by the `RemoteConfig` object fetched from the backend upon application startup. It allows administrators to communicate important information to all users or enforce mandatory updates.
10+
11+
<Aside>
12+
The logic for displaying these pages resides in the `_AppView` widget (`lib/app/view/app.dart`), which listens to the `AppStatus` from the `AppBloc`.
13+
</Aside>
14+
15+
## The Status Pages
16+
17+
<CardGrid>
18+
<Card title="Maintenance Page" icon="construction">
19+
When the `isUnderMaintenance` flag in the `RemoteConfig` is set to `true`, the application will display the `MaintenancePage`. This page informs the user that the app is temporarily unavailable and prevents them from proceeding further. It's a crucial tool for performing server-side updates without disrupting users with a broken app.
20+
</Card>
21+
<Card title="Update Required Page" icon="system-update">
22+
If the `isLatestVersionOnly` flag is `true` in the `RemoteConfig`, the `UpdateRequiredPage` is shown. This page instructs the user that they must update to the latest version of the app to continue. It includes a button that links directly to the appropriate app store (Apple App Store or Google Play Store), using the URL also provided in the `RemoteConfig`.
23+
</Card>
24+
<Card title="Initial Status Page" icon="cloud-download">
25+
This is the very first UI the user sees when a remote configuration check is required. The `StatusPage` handles two states:
26+
- **Loading**: Displays a loading indicator while the app is fetching the remote config (`AppStatus.configFetching`).
27+
- **Failure**: If the fetch fails, it shows an error message and a "Retry" button, allowing the user to attempt the connection again (`AppStatus.configFetchFailed`).
28+
</Card>
29+
</CardGrid>

0 commit comments

Comments
 (0)