Skip to content

Commit 49ac6c1

Browse files
committed
Simplify useState + useEffect to useMemo
1 parent 2fe7fc5 commit 49ac6c1

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/Components/forms/inputs/EmployerDropDown.js

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useEffect, useState } from 'react'
1+
import { useEffect, useMemo, useState } from 'react'
22
import { Label } from 'reactstrap'
33
import Select from 'react-select/creatable'
44

@@ -8,9 +8,17 @@ const EmployerDropDown = ({
88
onChange,
99
value
1010
}) => {
11-
const [isCustomEntry, setIsCustomEntry] = useState(false)
1211
const [options, setOptions] = useState([])
13-
const [selectedOption, setSelectedOption] = useState()
12+
13+
const isCustomEntry = useMemo(
14+
() => value !== '' && !employers.some(({ name }) => name === value),
15+
[employers, value]
16+
)
17+
18+
const selectedOption = useMemo(
19+
() => options.find(employer => employer.value === value),
20+
[options, value]
21+
)
1422

1523
useEffect(() => {
1624
setOptions(
@@ -21,16 +29,6 @@ const EmployerDropDown = ({
2129
)
2230
}, [employers])
2331

24-
useEffect(() => {
25-
setIsCustomEntry(
26-
value !== '' && !employers.some(({ name }) => name === value)
27-
)
28-
}, [employers, value])
29-
30-
useEffect(() => {
31-
setSelectedOption(options.find(employer => employer.value === value))
32-
}, [options, value])
33-
3432
const handleChange = e =>
3533
onChange({
3634
target: {

0 commit comments

Comments
 (0)