sync method
Implementation
void sync({
required List<CatalogRow> rows,
required CatalogMeta? meta,
}) {
var changed = false;
if (rows.isEmpty) {
if (_selectedKey != null) {
_selectedKey = null;
changed = true;
}
if (_selectionExplicit) {
_selectionExplicit = false;
changed = true;
}
final fallbackLocale = defaultEditorLocale(meta);
if (_selectedLocale != fallbackLocale) {
_selectedLocale = fallbackLocale;
changed = true;
}
if (changed) {
notifyListeners();
}
return;
}
final currentKey = _selectedKey;
if (currentKey == null || !rows.any((row) => row.keyPath == currentKey)) {
_selectedKey = rows.first.keyPath;
_selectionExplicit = false;
changed = true;
}
final locales = meta?.locales ?? const <String>[];
if (_selectedLocale == null || !locales.contains(_selectedLocale)) {
_selectedLocale = defaultEditorLocale(meta);
changed = true;
}
if (changed) {
notifyListeners();
}
}