Skip to content

Commit 5469cc9

Browse files
committedJan 1, 2022
feat(chord): fix various hooks dependencies issues
1 parent 00d839e commit 5469cc9

File tree

7 files changed

+24
-18
lines changed

7 files changed

+24
-18
lines changed
 

‎packages/chord/src/Chord.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ const InnerChord = ({
8585
})
8686

8787
const { setCurrentArc, setCurrentRibbon, getArcOpacity, getRibbonOpacity } = useChordSelection({
88-
arcs,
8988
arcOpacity,
9089
activeArcOpacity,
9190
inactiveArcOpacity,

‎packages/chord/src/ChordArc.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export const ChordArc = memo(
4242
showTooltipFromEvent(createElement(tooltip, { arc }), event)
4343
onMouseEnter?.(arc, event)
4444
}
45-
}, [isInteractive, showTooltipFromEvent, tooltip, arc, onMouseEnter])
45+
}, [isInteractive, showTooltipFromEvent, tooltip, arc, onMouseEnter, setCurrent])
4646

4747
const handleMouseMove = useMemo(() => {
4848
if (!isInteractive) return undefined
@@ -61,7 +61,7 @@ export const ChordArc = memo(
6161
hideTooltip()
6262
onMouseLeave?.(arc, event)
6363
}
64-
}, [isInteractive, hideTooltip, arc, onMouseLeave])
64+
}, [isInteractive, hideTooltip, arc, onMouseLeave, setCurrent])
6565

6666
const handleClick = useMemo(() => {
6767
if (!isInteractive || !onClick) return undefined

‎packages/chord/src/ChordCanvas.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ const InnerChordCanvas = ({
103103
})
104104

105105
const { currentArc, setCurrentArc, getArcOpacity, getRibbonOpacity } = useChordSelection({
106-
arcs,
107106
arcOpacity,
108107
activeArcOpacity,
109108
inactiveArcOpacity,
@@ -257,6 +256,8 @@ const InnerChordCanvas = ({
257256
outerHeight,
258257
margin,
259258
pixelRatio,
259+
center,
260+
radius,
260261
theme,
261262
layers,
262263
arcs,
@@ -316,8 +317,10 @@ const InnerChordCanvas = ({
316317
innerRadius,
317318
arcs,
318319
setCurrentArc,
320+
currentArc,
319321
showTooltipFromEvent,
320322
hideTooltip,
323+
arcTooltip,
321324
onArcMouseEnter,
322325
onArcMouseMove,
323326
onArcMouseLeave,

‎packages/chord/src/ChordLabels.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const ChordLabels = memo(({ arcs, radius, rotation, color }: ChordLabelsP
4141
dominantBaseline: textProps.baseline,
4242
}
4343
}),
44-
[arcs, radius, radius, rotation, getColor]
44+
[arcs, radius, rotation, getColor]
4545
)
4646

4747
const transition = useTransition<

‎packages/chord/src/ChordRibbon.tsx

+6-6
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,16 @@ export const ChordRibbon = memo(
4848
return (event: MouseEvent) => {
4949
setCurrent(ribbon)
5050
showTooltipFromEvent(createElement(tooltip, { ribbon }), event)
51-
onMouseEnter && onMouseEnter(ribbon, event)
51+
onMouseEnter?.(ribbon, event)
5252
}
53-
}, [isInteractive, showTooltipFromEvent, tooltip, ribbon, onMouseEnter])
53+
}, [isInteractive, showTooltipFromEvent, tooltip, ribbon, onMouseEnter, setCurrent])
5454

5555
const handleMouseMove = useMemo(() => {
5656
if (!isInteractive) return undefined
5757

5858
return (event: MouseEvent) => {
5959
showTooltipFromEvent(createElement(tooltip, { ribbon }), event)
60-
onMouseMove && onMouseMove(ribbon, event)
60+
onMouseMove?.(ribbon, event)
6161
}
6262
}, [isInteractive, showTooltipFromEvent, tooltip, ribbon, onMouseMove])
6363

@@ -67,14 +67,14 @@ export const ChordRibbon = memo(
6767
return (event: MouseEvent) => {
6868
setCurrent(null)
6969
hideTooltip()
70-
onMouseLeave && onMouseLeave(ribbon, event)
70+
onMouseLeave?.(ribbon, event)
7171
}
72-
}, [isInteractive, hideTooltip, ribbon, onMouseLeave])
72+
}, [isInteractive, hideTooltip, ribbon, onMouseLeave, setCurrent])
7373

7474
const handleClick = useMemo(() => {
7575
if (!isInteractive || !onClick) return undefined
7676

77-
return (event: MouseEvent) => onClick(ribbon, event)
77+
return (event: MouseEvent) => onClick?.(ribbon, event)
7878
}, [isInteractive, ribbon, onClick])
7979

8080
return (

‎packages/chord/src/hooks.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ export const useChord = ({
120120
}
121121

122122
export const useChordSelection = ({
123-
arcs,
124123
arcOpacity = commonDefaultProps.arcOpacity,
125124
activeArcOpacity = commonDefaultProps.activeArcOpacity,
126125
inactiveArcOpacity = commonDefaultProps.inactiveArcOpacity,
@@ -129,7 +128,6 @@ export const useChordSelection = ({
129128
activeRibbonOpacity = commonDefaultProps.activeRibbonOpacity,
130129
inactiveRibbonOpacity = commonDefaultProps.inactiveRibbonOpacity,
131130
}: {
132-
arcs: ArcDatum[]
133131
arcOpacity?: ChordCommonProps['arcOpacity']
134132
activeArcOpacity?: ChordCommonProps['activeArcOpacity']
135133
inactiveArcOpacity?: ChordCommonProps['inactiveArcOpacity']
@@ -164,7 +162,7 @@ export const useChordSelection = ({
164162
}
165163

166164
return { selectedArcIds, selectedRibbonIds }
167-
}, [currentArc, currentRibbon, arcs, ribbons])
165+
}, [currentArc, currentRibbon, ribbons])
168166

169167
const hasSelection =
170168
selection.selectedArcIds.length > 1 || selection.selectedRibbonIds.length > 0
@@ -175,7 +173,7 @@ export const useChordSelection = ({
175173

176174
return selection.selectedArcIds.includes(arc.id) ? activeArcOpacity : inactiveArcOpacity
177175
},
178-
[selection.selectedArcIds, arcOpacity, activeArcOpacity, inactiveArcOpacity]
176+
[hasSelection, selection.selectedArcIds, arcOpacity, activeArcOpacity, inactiveArcOpacity]
179177
)
180178
const getRibbonOpacity = useMemo(
181179
() => (ribbon: RibbonDatum) => {
@@ -185,7 +183,13 @@ export const useChordSelection = ({
185183
? activeRibbonOpacity
186184
: inactiveRibbonOpacity
187185
},
188-
[selection.selectedRibbonIds, ribbonOpacity, activeRibbonOpacity, inactiveRibbonOpacity]
186+
[
187+
hasSelection,
188+
selection.selectedRibbonIds,
189+
ribbonOpacity,
190+
activeRibbonOpacity,
191+
inactiveRibbonOpacity,
192+
]
189193
)
190194

191195
return {

‎packages/chord/src/types.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ export interface CustomLayerProps {
1818
center: [number, number]
1919
radius: number
2020
arcs: ArcDatum[]
21-
arcGenerator: any
21+
arcGenerator: ArcGenerator
2222
ribbons: RibbonDatum[]
23-
ribbonGenerator: any
23+
ribbonGenerator: RibbonGenerator
2424
}
2525
export type CustomLayer = FunctionComponent<CustomLayerProps>
2626
export type CustomCanvasLayer = (ctx: CanvasRenderingContext2D, props: CustomLayerProps) => void

0 commit comments

Comments
 (0)
Please sign in to comment.