Comment gérer au mieux les valeurs par défaut des champs personnalisés et les journaux de paramètres de catégorie

Oui, c’est délicat. Je suppose que la plupart des plugins ne rencontrent pas ce problème car leur ‘valeur par défaut’ pour le paramètre de catégorie est une valeur nulle.

Aviez-vous une idée de changement d’API principal qui pourrait aider à améliorer la situation ?

Totalement non testé, mais je pense que nous pourrions peut-être y parvenir dès maintenant en utilisant un champ de saisie HTML brut (notez input en minuscules au lieu du composant \u003cInput à double liaison d’Ember).

<input
  value={{or category.custom_fields.my_field "valeur par défaut"}}
  {{on "change" this.updateMyFieldValue}}
/>

Avec cette stratégie, nous avons le contrôle sur la façon dont les valeurs sont lues/écrites dans l’instance du modèle. Ainsi, si une valeur est définie sur la valeur par défaut dans l’interface utilisateur, nous pouvons l’écrire comme ‘null’ dans les champs personnalisés :

@action
updateMyFieldValue(event){
  let newValue = event.target.value;
  if(newValue === "valeur par défaut"){
    newValue = null;
  }

  this.category.set("custom_fields.my_field", newValue);
}

(et ensuite vous supprimeriez la configuration de la valeur par défaut que vous avez décrite dans (1) de l’OP)