diff --git a/client/homebrew/editor/tagInput/tagInput.jsx b/client/homebrew/editor/tagInput/tagInput.jsx index 387e09b81..2c636b0c8 100644 --- a/client/homebrew/editor/tagInput/tagInput.jsx +++ b/client/homebrew/editor/tagInput/tagInput.jsx @@ -17,12 +17,14 @@ const TagInput = ({ unique = true, values = [], ...props }) => { }) }; - const handleInputKeyDown = (evt, value, clear = false) => { + const handleInputKeyDown = ({ evt, value, index, options = {} }) => { if (_.includes(['Enter', ','], evt.key)) { evt.preventDefault(); - submitTag(evt.target.value, value); - if(clear){ setTemporaryValue(''); } - }; + submitTag(evt.target.value, value, index); + if (options.clear) { + setTemporaryValue(''); + } + } }; const submitTag = (newValue, originalValue, index) => { @@ -36,8 +38,8 @@ const TagInput = ({ unique = true, values = [], ...props }) => { return [...prevContext, { value: newValue, editing: false }] } // update existing tag - return prevContext.map((context) => { - if (context.value === originalValue) { + return prevContext.map((context, i) => { + if (i === index) { return { ...context, value: newValue, editing: false }; } return context; @@ -45,10 +47,10 @@ const TagInput = ({ unique = true, values = [], ...props }) => { }); }; - const editTag = (valueToEdit) => { + const editTag = (index) => { setValueContext((prevContext) => { - return prevContext.map((context) => { - if (context.value === valueToEdit) { + return prevContext.map((context, i) => { + if (i === index) { return { ...context, editing: true }; } return { ...context, editing: false }; @@ -61,7 +63,7 @@ const TagInput = ({ unique = true, values = [], ...props }) => {