From 01ee8068db72dae2fdf3d277d012eaafe856a33f Mon Sep 17 00:00:00 2001 From: Atul Varma Date: Sun, 14 Feb 2021 17:13:27 -0500 Subject: [PATCH] Add some sliders. --- lib/pages/waves-page.tsx | 121 +++++++++++++++++++++++++++++++++------ 1 file changed, 104 insertions(+), 17 deletions(-) diff --git a/lib/pages/waves-page.tsx b/lib/pages/waves-page.tsx index cf3b3bc..35ec626 100644 --- a/lib/pages/waves-page.tsx +++ b/lib/pages/waves-page.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useState } from "react"; const Wave: React.FC<{}> = () => ( <> @@ -48,24 +48,61 @@ const Wave: React.FC<{}> = () => ( ); const NUM_WAVES = 8; -const WAVE_PARALLAX_SCALE_START = 1.25; +const WAVE_DURATION = 1; +const WAVE_PARALLAX_SCALE_START = 1.2; const WAVE_PARALLAX_TRANSLATE_START = 10; const WAVE_PARALLAX_SCALE_VELOCITY = 0.25; const WAVE_PARALLAX_TRANSLATE_VELOCITY = 30; const WAVE_PARALLAX_TRANSLATE_ACCEL = 10; +const NumericSlider: React.FC<{ + id: string; + label: string; + onChange: (value: number) => void; + value: number; + min: number; + max: number; + step: number; + valueSuffix?: string; +}> = (props) => { + return ( +

+ + props.onChange(parseFloat(e.target.value))} + /> + + {" "} + {props.value} + {props.valueSuffix} + +

+ ); +}; + const Waves: React.FC<{}> = () => { + const [numWaves, setNumWaves] = useState(NUM_WAVES); + const [duration, setDuration] = useState(WAVE_DURATION); + const [initialYVel, setInitialYVel] = useState( + WAVE_PARALLAX_TRANSLATE_VELOCITY + ); + const [yAccel, setYAccel] = useState(WAVE_PARALLAX_TRANSLATE_ACCEL); + const [scaleVel, setScaleVel] = useState(WAVE_PARALLAX_SCALE_VELOCITY); + let scale = WAVE_PARALLAX_SCALE_START; - let translate = WAVE_PARALLAX_TRANSLATE_START; - let translateVel = WAVE_PARALLAX_TRANSLATE_VELOCITY; + let y = WAVE_PARALLAX_TRANSLATE_START; + let yVel = initialYVel; let waves: JSX.Element[] = []; - for (let i = 0; i < NUM_WAVES; i++) { + for (let i = 0; i < numWaves; i++) { waves.push( - + = () => { type="translate" from="-179 0" to="-100 0" - dur="1s" + dur={`${duration}s`} begin="0s" fill="freeze" repeatCount="indefinite" @@ -81,19 +118,69 @@ const Waves: React.FC<{}> = () => { ); - translate += translateVel; - scale += WAVE_PARALLAX_SCALE_VELOCITY; - translateVel += WAVE_PARALLAX_TRANSLATE_ACCEL; + y += yVel; + scale += scaleVel; + yVel += yAccel; } - return <>{waves}; + return ( + <> + + {waves} + + + + + + + + ); }; export const WavesPage: React.FC<{}> = () => ( <>

Waves!

- - - + );