diff options
| author | Sophie Zhang <sophie_zhang@brown.edu> | 2024-04-09 17:28:52 -0400 |
|---|---|---|
| committer | Sophie Zhang <sophie_zhang@brown.edu> | 2024-04-09 17:28:52 -0400 |
| commit | 6e3f78c394e0703465344705987ce3fd4bedd756 (patch) | |
| tree | 1e32befc9e3421d53c7c38db4fb0980a03f4c0aa | |
| parent | b158b7ffb564db8dc60da9b80b01b10f1ed8b7cf (diff) | |
setting a default timing for certain effects
| -rw-r--r-- | src/client/views/nodes/trails/PresBox.tsx | 4 | ||||
| -rw-r--r-- | src/client/views/nodes/trails/SpringUtils.ts | 48 |
2 files changed, 51 insertions, 1 deletions
diff --git a/src/client/views/nodes/trails/PresBox.tsx b/src/client/views/nodes/trails/PresBox.tsx index d3abaddd9..3f546cdd7 100644 --- a/src/client/views/nodes/trails/PresBox.tsx +++ b/src/client/views/nodes/trails/PresBox.tsx @@ -48,7 +48,7 @@ import CubicBezierEditor, { TIMING_DEFAULT_MAPPINGS } from './CubicBezierEditor' import Slider from '@mui/material/Slider'; import { FaArrowDown, FaArrowLeft, FaArrowRight, FaArrowUp, FaCompressArrowsAlt } from 'react-icons/fa'; import SpringAnimationPreview from './SlideEffectPreview'; -import { effectTimings, SpringType, springMappings, effectItems, easeItems, movementItems, SpringSettings } from './SpringUtils'; +import { effectTimings, SpringType, springMappings, effectItems, easeItems, movementItems, SpringSettings, presEffectDefaultTimings } from './SpringUtils'; export interface pinDataTypes { scrollable?: boolean; @@ -2156,6 +2156,8 @@ export class PresBox extends ViewBoxBaseComponent<FieldViewProps>() { selectedVal={effect?.toString()} setSelectedVal={val => { this.updateEffect(val as PresEffect, false); + // set default spring options for that effect + this.updateEffectTiming(activeItem, presEffectDefaultTimings[val as keyof typeof presEffectDefaultTimings]); }} dropdownType={DropdownType.SELECT} type={Type.TERT} diff --git a/src/client/views/nodes/trails/SpringUtils.ts b/src/client/views/nodes/trails/SpringUtils.ts index 5feb1628a..caadf4220 100644 --- a/src/client/views/nodes/trails/SpringUtils.ts +++ b/src/client/views/nodes/trails/SpringUtils.ts @@ -59,6 +59,54 @@ export const effectItems = Object.values(PresEffect) val: effect, })); +export const presEffectDefaultTimings: { + [key: string]: SpringSettings; +} = { + Zoom: { type: SpringType.GENTLE, stiffness: 100, damping: 15, mass: 1 }, + Bounce: { + type: SpringType.BOUNCY, + stiffness: 600, + damping: 15, + mass: 1, + }, + Lightspeed: { + type: SpringType.GENTLE, + stiffness: 100, + damping: 15, + mass: 1, + }, + Fade: { + type: SpringType.GENTLE, + stiffness: 100, + damping: 15, + mass: 1, + }, + Flip: { + type: SpringType.GENTLE, + stiffness: 100, + damping: 15, + mass: 1, + }, + Rotate: { + type: SpringType.GENTLE, + stiffness: 100, + damping: 15, + mass: 1, + }, + Roll: { + type: SpringType.GENTLE, + stiffness: 100, + damping: 15, + mass: 1, + }, + None: { + type: SpringType.GENTLE, + stiffness: 100, + damping: 15, + mass: 1, + }, +}; + export const effectTimings = [ { text: 'Default', val: SpringType.DEFAULT }, { |
