addPluralBranch method

void addPluralBranch({
  1. required CatalogRow row,
  2. required String locale,
  3. required String category,
})

Implementation

void addPluralBranch({
  required CatalogRow row,
  required String locale,
  required String category,
}) {
  final draft = valueDraftFor(row, locale);
  final nextValue = cloneCatalogValue(draft.value) ?? <String, dynamic>{};
  if (draft.editorMode == CatalogEditorMode.pluralGender) {
    final sourceBranch = readCatalogPath(row.valuesByLocale[_queue.meta?.sourceLocale], <String>[category]);
    final nextBranch = <String, dynamic>{};
    final keys = detectCatalogShape(sourceBranch) == CatalogEditorMode.gender
        ? normalizedGenderKeys(sourceBranch)
        : catalogGenderKeys;
    for (final key in keys) {
      nextBranch[key] = '';
    }
    nextValue[category] = nextBranch;
  } else {
    nextValue[category] = '';
  }
  draft.value = nextValue;
  draft.rawText = prettyCatalogJson(draft.value);
  draft.touched = true;
  _scheduleValueDraftSave(draft);
}