Offline Mutations
Queue mutations when the device is offline and automatically sync them when connectivity is restored.
Enable queueWhenOffline in your MutationOptions.
MutationBuilder<Todo, String>( mutationFn: (text) => api.addTodo(text), options: MutationOptions( // 1. Enable queuing queueWhenOffline: true,
// 2. Configure retries if syncing fails maxRetries: 3, ), builder: (context, state, mutate) { return ElevatedButton( onPressed: () => mutate('New Todo'), child: Text('Add Todo'), ); },)MutationOptions
Section titled “MutationOptions”| Option | Type | Default | Description |
|---|---|---|---|
queueWhenOffline | bool | false | If true, stores the mutation if network is unavailable. |
maxRetries | int | 0 | Number of times to retry the mutation when syncing. |
NetworkStatus
Section titled “NetworkStatus”Fasq listens to network connectivity automatically, but you can override it if needed.
// Manually report status (e.g. for testing)NetworkStatus.instance.setOnline(false);Examples
Section titled “Examples”Showing “Queued” UI
Section titled “Showing “Queued” UI”You can show the user that their action is pending sync.
if (state.isQueued) { return Text('Saved offline. Will sync when online.');}Manual Syncing
Section titled “Manual Syncing”While Fasq syncs automatically when the network returns, you can trigger a sync manually.
await OfflineQueueManager.instance.processQueue();