Skip to content

Commit 9561146

Browse files
committed
fix: check for uncontrolled component
1 parent 22a6c20 commit 9561146

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/Common/SegmentedControl/NSegmentedControl.component.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,12 @@ const NSegmentedControl = ({
6565
value: controlledValue,
6666
fullWidth = false,
6767
}: NSegmentedControlProps) => {
68+
const isUnControlledComponent = controlledValue === undefined
69+
6870
const segmentedControlRefContainer = useRef<HTMLDivElement>(null)
6971
const selectedSegmentRef = useRef<HTMLDivElement>(null)
7072
const [selectedSegmentValue, setSelectedSegmentValue] = useState<SegmentType['value'] | null>(segments[0].value)
71-
const segmentValue = controlledValue === undefined ? selectedSegmentValue : controlledValue
73+
const segmentValue = isUnControlledComponent ? selectedSegmentValue : controlledValue
7274

7375
useEffect(() => {
7476
if (segmentValue) {
@@ -81,7 +83,9 @@ const NSegmentedControl = ({
8183
}, [segmentValue, size, fullWidth])
8284

8385
const handleSegmentChange = (updatedSegment: SegmentType) => {
84-
setSelectedSegmentValue(updatedSegment.value)
86+
if (isUnControlledComponent) {
87+
setSelectedSegmentValue(updatedSegment.value)
88+
}
8589
onChange?.(updatedSegment)
8690
}
8791

0 commit comments

Comments
 (0)