Skip to content

Commit 42c72eb

Browse files
committed
feat: simplify Segment and SegmentedControl components by removing unused refs and props
1 parent 0ca413e commit 42c72eb

File tree

3 files changed

+4
-29
lines changed

3 files changed

+4
-29
lines changed

src/Common/SegmentedControl/Segment.tsx

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,7 @@ const wrapWithTooltip = (tooltipProps: SegmentType['tooltipProps']) => (children
1616
</Tooltip>
1717
)
1818

19-
const Segment = ({
20-
segment,
21-
isSelected,
22-
name,
23-
selectedSegmentRef,
24-
onChange,
25-
fullWidth,
26-
size,
27-
disabled,
28-
}: SegmentProps) => {
19+
const Segment = ({ segment, isSelected, name, onChange, fullWidth, size, disabled }: SegmentProps) => {
2920
const inputId = useMemo(getUniqueId, [])
3021

3122
const { value, icon, isError, label, tooltipProps, ariaLabel } = segment
@@ -35,10 +26,7 @@ const Segment = ({
3526

3627
return (
3728
<ConditionalWrap key={value} condition={!!tooltipProps?.content} wrap={wrapWithTooltip(tooltipProps)}>
38-
<div
39-
className={`dc__position-rel dc__text-center dc__no-shrink ${fullWidth ? 'flex-grow-1' : ''}`}
40-
ref={selectedSegmentRef}
41-
>
29+
<div className={`dc__position-rel dc__text-center dc__no-shrink ${fullWidth ? 'flex-grow-1' : ''}`}>
4230
<input
4331
type="radio"
4432
value={value}

src/Common/SegmentedControl/SegmentedControl.component.tsx

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useRef, useState } from 'react'
1+
import { useState } from 'react'
22

33
import { ComponentSizeType } from '@Shared/constants'
44

@@ -17,12 +17,6 @@ const SegmentedControl = ({
1717
disabled,
1818
}: SegmentedControlProps) => {
1919
const isUnControlledComponent = controlledValue === undefined
20-
21-
const segmentedControlRefContainer = useRef<HTMLDivElement>(null)
22-
/**
23-
* Using this ref to show the selected segment highlight with transition
24-
*/
25-
const selectedSegmentRef = useRef<HTMLDivElement>(null)
2620
const [selectedSegmentValue, setSelectedSegmentValue] = useState<SegmentType['value'] | null>(segments[0].value)
2721
const segmentValue = isUnControlledComponent ? selectedSegmentValue : controlledValue
2822

@@ -37,16 +31,12 @@ const SegmentedControl = ({
3731
<div
3832
className={`segmented-control ${!fullWidth ? 'dc__inline-flex' : ''} ${disabled ? 'dc__disabled' : ''} br-6 ${size === ComponentSizeType.xs ? 'p-1' : 'p-2'}`}
3933
>
40-
<div
41-
className="segmented-control__container flex left dc__position-rel dc__align-items-center dc__gap-2"
42-
ref={segmentedControlRefContainer}
43-
>
34+
<div className="segmented-control__container flex left dc__position-rel dc__align-items-center dc__gap-2">
4435
{segments.map((segment) => {
4536
const isSelected = segment.value === segmentValue
4637

4738
return (
4839
<Segment
49-
selectedSegmentRef={isSelected ? selectedSegmentRef : undefined}
5040
segment={segment}
5141
key={segment.value}
5242
name={name}

src/Common/SegmentedControl/types.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { RefObject } from 'react'
2-
31
import { TooltipProps } from '@Common/Tooltip'
42
import { IconsProps, SelectPickerOptionType } from '@Shared/Components'
53
import { ComponentSizeType } from '@Shared/constants'
@@ -84,5 +82,4 @@ export interface SegmentProps
8482
extends Required<Pick<SegmentedControlProps, 'name' | 'onChange' | 'fullWidth' | 'size' | 'disabled'>> {
8583
isSelected: boolean
8684
segment: SegmentType
87-
selectedSegmentRef: RefObject<HTMLDivElement> | undefined
8885
}

0 commit comments

Comments
 (0)