flushNoteDraft method
Implementation
Future<void> flushNoteDraft(CatalogRow row) async {
final draft = _noteDrafts[row.keyPath];
if (draft == null) {
return;
}
draft.timer?.cancel();
if (!_isNoteDraftDirty(draft)) {
notifyListeners();
return;
}
draft.syncState = CatalogDraftSyncState.saving;
notifyListeners();
try {
final updatedRow = await _client.updateKeyNote(
keyPath: row.keyPath,
note: draft.note,
);
draft.baseNote = updatedRow.note ?? '';
draft.note = updatedRow.note ?? '';
draft.touched = false;
draft.syncState = CatalogDraftSyncState.saved;
draft.errorMessage = null;
_queue.upsertRow(updatedRow);
_scheduleSavedReset(draft);
notifyListeners();
} catch (error) {
draft.syncState = CatalogDraftSyncState.saveError;
draft.errorMessage = error.toString();
notifyListeners();
}
}