@@ -72,22 +72,10 @@ export const LFO = forwardRef<LFORef, LFOProps>((props, ref) => {
7272 }
7373
7474 const generateWave = ( ) => {
75- generateSineWave ( )
76- }
77-
78- const generateSineWave = ( ) => {
79- if ( type !== 'sine' ) return
80-
8175 const { width, height } = dimensions . current
8276 const svg = d3 . select ( LFORef . current ) . select ( 'svg' ) . attr ( 'width' , width ) . attr ( 'height' , height )
83- svg . selectAll ( '*' ) . remove ( )
8477
85- const data = d3 . range ( 0 , 4 * Math . PI * ( speed * 10 ) , 0.01 ) . map ( ( x ) => {
86- return {
87- x,
88- y : Math . sin ( x ) * frequency * ( max - min ) * 0.5 + ( max + min ) / 2 ,
89- }
90- } )
78+ svg . selectAll ( '*' ) . remove ( )
9179
9280 if ( delay > 0 ) {
9381 svg
@@ -107,6 +95,19 @@ export const LFO = forwardRef<LFORef, LFOProps>((props, ref) => {
10795 . attr ( 'stroke-width' , lineWidth )
10896 }
10997
98+ generateSineWave ( svg )
99+ }
100+
101+ const generateSineWave = ( svg : d3 . Selection < d3 . BaseType , unknown , null , undefined > ) => {
102+ if ( type !== 'sine' || ! svg ) return
103+
104+ const data = d3 . range ( 0 , 4 * Math . PI * ( speed * 10 ) , 0.01 ) . map ( ( x ) => {
105+ return {
106+ x,
107+ y : Math . sin ( x ) * frequency * ( max - min ) * 0.5 + ( max + min ) / 2 ,
108+ }
109+ } )
110+
110111 const line = d3
111112 . line < { x : number ; y : number } > ( )
112113 . x ( ( d ) => xScale . current ! ( d . x ) )
0 commit comments