updateKeyNote method
Implementation
Future<CatalogRow> updateKeyNote({
required String keyPath,
String? note,
}) async {
final loaded = await _loadAndSyncState();
if (!loaded.keyPaths.contains(keyPath)) {
throw CatalogOperationException('Key "$keyPath" does not exist.');
}
final keyState = loaded.state.keys.putIfAbsent(
keyPath,
() => CatalogKeyState(sourceHash: '', cells: <String, CatalogCellState>{}),
);
final normalizedNote = _normalizeCatalogNote(note);
final previousNote = _normalizeCatalogNote(keyState.note);
keyState.note = normalizedNote;
if (previousNote != normalizedNote) {
_appendActivityEvent(
keyState: keyState,
event: CatalogActivityEvent(
kind: CatalogActivityKinds.noteUpdated,
timestamp: DateTime.now().toUtc(),
),
);
}
await _stateStore.save(
config: config,
projectRootPath: projectRootPath,
state: loaded.state,
);
_triggerDictionaryGeneration();
return _buildRowForKey(
keyPath: keyPath,
locales: loaded.locales,
translationsByLocale: loaded.dataset.translationsByLocale,
state: loaded.state,
now: DateTime.now().toUtc(),
);
}