# SyncProgressList

Canonical page: https://docs.ovok.com/native-sdk/guide/components/data-sync/sync-progress-list

Render progress reported by `AppleHealthSync` or `AndroidHealthSync`. The
component displays a label, localized status, completed-versus-total count, and a
progress bar for each populated entry.

~~~tsx
import { SyncProgressList } from "@ovok/native/data-sync";

<SyncProgressList
  progress={progress}
  labelForType={(type) => measurementLabels[type] ?? type}
  statusLabels={{ syncing: "Importing", completed: "Imported" }}
  reasonLabels={{ offline: "No connection", "wifi-only": "Waiting for Wi-Fi" }}
/>;
~~~

## Props [#props]

Every prop, with its type and description, is listed in the [`@ovok/native/data-sync` API reference](/native-sdk/reference/data-sync).

## Progress shape [#progress-shape]

`SyncProgress` contains:

- `measurementTypeKey`: the key configured in `dataToSync`;
- `status`: `idle`, `started`, `syncing`, `paused`, `failed`, or
  `completed`;
- optional `reason`: `offline` or `wifi-only` when paused;
- optional `progress`: `done`, `total`, and `created` observation counts.

The list displays `done` and `total`; read `created` from the progress map
when the screen needs to distinguish new observations from matched records.
Status and reason labels fall back to the SDK's i18n strings and the raw reason
value, respectively.

## Related [#related]

- [AppleHealthSync](/native-sdk/guide/components/data-sync/apple/health-sync/)
- [AndroidHealthSync](/native-sdk/guide/components/data-sync/android/health-sync/)
- [HealthKit and Health Connect guide](/native-sdk/guide/modules/data-sync)
