summaryrefslogtreecommitdiff
path: root/client/src/components/UpdateInput/UpdateInput.jsx
blob: 1cbfcbdbf8a51b71f783be89454329d798c705f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import React from 'react'
import styles from './UpdateInput.module.css'
import EditButton from '../EditButton/EditButton'

const UpdateInput = ({
  label,
  id,
  value,
  defaultValue,
  type,
  name,
  onChange,
  placeholder,
  maxLength,
  pattern,
  minLength,
  onInvalid,
  onValid,
  readOnly
}) => {
  const [editable, setEditable] = React.useState(true)

  const handleEdit = () => {
    setEditable(!editable)
  }

  return (
    <div className={styles.input}>
      <div className={styles.input__container}>
        <label htmlFor={id}>{label}</label>
        <div className={styles.input__edit}>
          <input
            className={styles.input__field}
            type={type}
            id={id}
            name={name}
            value={value}
            defaultValue={defaultValue}
            onChange={onChange}
            required
            placeholder={placeholder}
            pattern={pattern}
            maxLength={maxLength}
            minLength={minLength}
            onInvalid={onInvalid}
            onValid={onValid}
            readOnly={editable}
          />
          <EditButton onClick={handleEdit} enabled={!editable ? '1' : '0'} />
        </div>
      </div>
    </div>
  )
}

export default UpdateInput