Correction of MultiServerAutocompleteArrayInput to display optiontext & Create
Close #1048
More explanation here : https://pad.lescommuns.org/ComprehensionLexiconAutocompleteInput?both#Pas-de-ligne-%E2%80%9CCr%C3%A9er%E2%80%9D-lors-de-l%E2%80%99affectation-des-comp%C3%A9tences
La ligne "Créer" permet, lorsqu'on clique dessus, d'afficher la boite de dialog permettant de créer une nouvelle compétence.

Dans quel cas nous n'en aurions pas besoin ? Soit on choisi dans la liste des compétences déjà existantes, soit on en créer une nouvelle, ce sont ces deux cas que j'ai testé, et qui fonctionnent.
C'est l'usage que tu en fais dans les chemins de la transition, non ? (voir ta démo ici : https://watch.screencastify.com/v/qiA6TsfkmH5WhnuDKHFT)
On peut très bien ne pas vouloir donner la possibilité à l'utilisateur de créer de nouvelles ressources ! Par exemple parce que le nombre de thématique est fixe.
C'est pourquoi sur le AutocompleteArrayInput de React-Admin, la propre create est optionnelle.
Dans les chemins de la transition, c'est bien toi qui a écrit ceci :
export const SkillsInput = (props) => (
<ReferenceArrayInput reference="Skill" {...props}>
<MultiServerAutocompleteArrayInput
optionText="pair:label"
// shouldRenderSuggestions={(value) => value.length > 0}
create={
<LexiconCreateDialog
fetchLexicon={fetchESCO('https://esco.commondata.one')}
selectData={data => ({
'pair:label': data.label,
'http://www.w3.org/ns/prov#wasDerivedFrom': data.uri,
})}
/>
}
fullWidth
/>
</ReferenceArrayInput>
)
Donc tu as choisi consciemment d'utiliser la prop Create. Cette option s'affiche bien sur AutocompleteArrayInput, mais pas si on utilise MultiServerAutocompleteArrayInput, est-on d'accord sur le problème de base ?
Oui mais on peut utiliser MultiServerAutocompleteArrayInput sans le props create !
https://dev.semapps.org/docs/frontend/input-components#multiserverautocompleteinput
Les CDLT c'est qu'un cas particulier.
Ce que tu as fait affiche systématiquement un "Créer ..." même quand on n'a pas passé de props create
La ligne "Créer" permet, lorsqu'on clique dessus, d'afficher la boite de dialog permettant de créer une nouvelle compétence.
Ce qui est important, c'est que quand tu tape "ya" et que tu cliques sur "Créer ya", le mot-clé "ya" apparaisse bien dans la boîte de dialogue. J'ai des doutes là-dessus, c'était le sens de ce commentaire.
Ce que j'ai fait dans cette PR est pour corriger un bug (plantage si on utilise optionText en fonction et le create). Et en effet, ce qui n'est pas top, c'est que cela ajoute toujours le create, donc je comprends mieux ce que tu voulais dire. Je vais voir ce que je peux faire pour l'améliorer.
Voilà, 6 mois après, je me suis remis dessus, et j'ai ajouté un test pour savoir si la prop create était utilisée. Pour info, même avant, si la prop n'était pas utilisé, je ne rentrais pas dans l'ajout de la ligne, mais là, au moins, c'est "ceinture et bretelle". Tu me diras si ça te va. Merci.
Fermé après confirmation avec @fluidlog https://github.com/assemblee-virtuelle/semapps/issues/1048#issuecomment-1698704659