MCPcopy Create free account
hub / github.com/PaulleDemon/PyUIBuilder / EditableDiv

Function EditableDiv

src/components/editableDiv.js:4–47  ·  view source on GitHub ↗
({value, onChange, openEdit=false, maxLength=Infinity, className='', inputClassName})

Source from the content-addressed store, hash-verified

2
3
4function EditableDiv({value, onChange, openEdit=false, maxLength=Infinity, className='', inputClassName}) {
5 const [isEditable, setIsEditable] = useState(openEdit)
6 const [content, setContent] = useState(value)
7 const inputRef = useRef(null)
8
9 useEffect(() => {
10
11 setContent(value)
12
13 }, [value])
14
15 useEffect(() => {
16 setIsEditable(openEdit)
17
18 if (openEdit){
19 setTimeout(() => {
20 inputRef.current.focus()
21 }, 15)
22 }
23
24 }, [openEdit])
25
26 const handleInput = (event) => {
27 onChange(event.target.value)
28 }
29
30 const handleEnterKey = (event) => {
31 if (event.key === "Enter"){
32 setIsEditable(false)
33 }
34 }
35
36 const handleDoubleClick = () => {
37 setIsEditable(true)
38 setTimeout(() => inputRef.current.focus(), 1)
39 }
40
41 const handleBlur = () => {
42 setIsEditable(false)
43 }
44
45 return (
46 <div
47 className={`tw-w-fit ${className}`}
48 onDoubleClick={handleDoubleClick}
49 onBlur={handleBlur} // To exit edit mode when clicking outside
50 >

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected