diff --git a/client/homebrew/editor/tagInput/tagInput.jsx b/client/homebrew/editor/tagInput/tagInput.jsx index 8063b4ab2..cfcb2be42 100644 --- a/client/homebrew/editor/tagInput/tagInput.jsx +++ b/client/homebrew/editor/tagInput/tagInput.jsx @@ -1,53 +1,74 @@ const React = require('react'); const { useState } = React; -const _ = require('lodash'); - -const TagInput = ({unique = true, values = [], ...props})=>{ +const TagInput = ({ unique = true, values = [], ...props }) => { const [temporaryValue, setTemporaryValue] = useState(''); - const [valueContext, setValueContext] = useState(values.map((value)=>({ value: value, editing : false }))); + const [valueContext, setValueContext] = useState(values.map((value) => ({ value, editing: false }))); + const handleInputKeyDown = (evt, value) => { + if (evt.key === 'Enter') { + submitTag(evt.target.value, value); + } + }; - const editTag = (evt)=>{ - setValueContext(valueContext.map((context)=>{ - context.editing = context.value === evt.target.dataset.value ? true : false; - return context; - })) - } + const submitTag = (newValue, originalValue) => { + setValueContext((prevContext) => { + return prevContext.map((context) => { + if (context.value === originalValue) { + return { ...context, value: newValue, editing: false }; + } + return context; + }); + }); + }; - const renderReadTag = (value)=>{ + const editTag = (valueToEdit) => { + setValueContext((prevContext) => { + return prevContext.map((context) => { + if (context.value === valueToEdit) { + return { ...context, editing: true }; + } + return { ...context, editing: false }; + }); + }); + }; + + const renderReadTag = (context) => { return ( -