From 843cad00e4b51c9fd6125ddefb85a8e44ad22e56 Mon Sep 17 00:00:00 2001 From: Bruno Lemos Date: Sat, 5 Dec 2020 23:58:17 -0300 Subject: [PATCH] Upgrade react-spring to v9.0.0-rc.3 https://github.com/pmndrs/react-spring/issues/985 --- packages/components/package.json | 3 +- .../components/animated/spring/helpers.tsx | 6 +- .../columns/ColumnFiltersRenderer.tsx | 326 +++++++++--------- .../src/components/common/AccordionView.tsx | 113 +++--- .../src/components/common/ProgressBar.tsx | 2 +- .../src/components/modals/AddColumnModal.tsx | 2 +- .../src/components/modals/ModalRenderer.tsx | 230 ++++++------ .../src/utils/helpers/animations.ts | 4 +- yarn.lock | 70 +--- 9 files changed, 335 insertions(+), 421 deletions(-) diff --git a/packages/components/package.json b/packages/components/package.json index 4df590b25..4bb4d0b13 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -16,6 +16,8 @@ "@bugsnag/plugin-react": "6.4.0", "@devhub/core": "0.101.0", "@octokit/rest": "16.43.1", + "@react-spring/core": "9.0.0-rc.3", + "@react-spring/native": "9.0.0-rc.3", "axios": "0.19.0", "fbemitter": "2.1.1", "flatted": "2.0.1", @@ -31,7 +33,6 @@ "react-helmet-async": "1.0.3", "react-native-appearance": "0.3.4", "react-redux": "7.1.1", - "react-spring": "9.0.0-beta.34", "react-test-renderer": "16.13.1", "react-window": "1.8.5", "redux": "4.0.4", diff --git a/packages/components/src/components/animated/spring/helpers.tsx b/packages/components/src/components/animated/spring/helpers.tsx index 10107a999..3aa4fe7eb 100644 --- a/packages/components/src/components/animated/spring/helpers.tsx +++ b/packages/components/src/components/animated/spring/helpers.tsx @@ -1,7 +1,7 @@ -import { ReactType } from 'react' -import { animated } from 'react-spring/native' +import { ElementType } from 'react' +import { animated } from '@react-spring/native' -export function createSpringAnimatedComponent>( +export function createSpringAnimatedComponent>( component: T, ) { // TODO: Fix type definition diff --git a/packages/components/src/components/columns/ColumnFiltersRenderer.tsx b/packages/components/src/components/columns/ColumnFiltersRenderer.tsx index bcf54990c..d92afb223 100644 --- a/packages/components/src/components/columns/ColumnFiltersRenderer.tsx +++ b/packages/components/src/components/columns/ColumnFiltersRenderer.tsx @@ -2,7 +2,7 @@ import { constants } from '@devhub/core' import React, { useCallback, useState } from 'react' import { StyleSheet } from 'react-native' -import { useTransition } from 'react-spring/native' +import { useTransition } from '@react-spring/native' import { useEmitter } from '../../hooks/use-emitter' import { useForceRerender } from '../../hooks/use-force-rerender' import { emitter } from '../../libs/emitter' @@ -108,20 +108,14 @@ export const ColumnFiltersRenderer = React.memo( ) const immediate = constants.DISABLE_ANIMATIONS - const overlayTransition = useTransition( - isOpen ? [true] : [], - isOpen ? ['column-options-overlay'] : [], - { - reset: false, - unique: true, - config: getDefaultReactSpringAnimationConfig({ precision: 0.01 }), - immediate, - from: { opacity: 0 }, - enter: { opacity: 0.75 }, - update: { opacity: isOpen ? 0.75 : 0 }, - leave: { opacity: 0 }, - }, - )[0] + const overlayTransition = useTransition(isOpen, { + config: getDefaultReactSpringAnimationConfig({ precision: 0.01 }), + immediate, + from: { opacity: 0 }, + enter: { opacity: 0.75 }, + update: { opacity: isOpen ? 0.75 : 0 }, + leave: { opacity: 0 }, + }) const enableAbsolutePositionAnimation = !!( !inlineMode && @@ -129,17 +123,22 @@ export const ColumnFiltersRenderer = React.memo( fixedWidth ) - const absolutePositionTransitions = useTransition( - [true], - [`column-options-renderer-${type === 'shared' ? 'shared' : columnId}`], + const absolutePositionTransitionKey = [ + `column-options-renderer-${type === 'shared' ? 'shared' : columnId}`, + ] + const absolutePositionTransition = useTransition< + boolean, + { left: number; right: number } + >( + true, enableAbsolutePositionAnimation && !inlineMode && fixedPosition && fixedWidth ? { + key: absolutePositionTransitionKey, config: getDefaultReactSpringAnimationConfig({ precision: 1 }), immediate: constants.DISABLE_ANIMATIONS, - unique: true, from: { [fixedPosition]: -fixedWidth, }, @@ -156,175 +155,174 @@ export const ColumnFiltersRenderer = React.memo( : { config: getDefaultReactSpringAnimationConfig({ precision: 1 }), immediate: constants.DISABLE_ANIMATIONS, - unique: true, from: { left: 0, right: 0 }, leave: { left: 0, right: 0 }, enter: { left: 0, right: 0 }, update: { left: 0, right: 0 }, }, ) - const absolutePositionTransition = absolutePositionTransitions[0] as - | typeof absolutePositionTransitions[0] - | undefined if (!renderFilter) return null if (!columnId) return null - const key = - (absolutePositionTransition && absolutePositionTransition.key) || - 'column-options-renderer' - return ( - { + const fixedPositionSpringValue = + fixedPosition === 'left' + ? left + : fixedPosition === 'right' + ? right + : undefined - !inlineMode && StyleSheet.absoluteFill, - !inlineMode && { - opacity: - enableAbsolutePositionAnimation && - absolutePositionTransition && - absolutePositionTransition.props && - fixedPosition && - fixedWidth - ? fixedPosition === 'left' || fixedPosition === 'right' - ? absolutePositionTransition.props[ - fixedPosition - ].to((value: number) => (fixedWidth + value <= 0 ? 0 : 1)) - : 1 - : 1, - visibility: - enableAbsolutePositionAnimation && - absolutePositionTransition && - absolutePositionTransition.props && - fixedPosition && - fixedWidth - ? fixedPosition === 'left' || fixedPosition === 'right' - ? absolutePositionTransition.props[ - fixedPosition - ].to((value: number) => - fixedWidth + value <= 0 ? 'hidden' : 'visible', - ) - : 'visible' - : 'visible', - zIndex: 200, - }, - ]} - pointerEvents={ - // prevent clicking on filters even when they are hidden behind column - // (only enabled for web desktop because this is causing bugs on ios safari) - Platform.OS === 'web' && - Platform.realOS !== 'ios' && - enableAbsolutePositionAnimation && - absolutePositionTransition && - absolutePositionTransition.props && - fixedPosition && - fixedWidth - ? absolutePositionTransition.props[ - fixedPosition - ].to((value: number) => (value < 0 ? 'none' : 'box-none')) - : 'box-none' - } - > - {!!overlayTransition && !inlineMode && !!close && ( + return ( + fixedWidth + value <= 0 ? 0 : 1, + ) + : 1, + visibility: + enableAbsolutePositionAnimation && + fixedPositionSpringValue && + fixedWidth + ? fixedPositionSpringValue.to((value) => + fixedWidth + value <= 0 ? 'hidden' : 'visible', + ) + : 'visible', zIndex: 200, - opacity: overlayTransition.props.opacity.to((opacity: number) => - Math.max(0, Math.min(Number(opacity.toFixed(2)), 0.75)), - ), }, ]} - pointerEvents="box-none" + pointerEvents={ + // prevent clicking on filters even when they are hidden behind column + // (only enabled for web desktop because this is causing bugs on ios safari) + Platform.OS === 'web' && + Platform.realOS !== 'ios' && + enableAbsolutePositionAnimation && + fixedPositionSpringValue && + fixedWidth + ? fixedPositionSpringValue.to((value) => + value < 0 ? 'none' : 'box-none', + ) + : 'box-none' + } > - { + if (!overlayItem) return null + + return ( + + Math.max( + 0, + Math.min(Number(opacity.toFixed(2)), 0.75), + ), + ), + }, + ]} + pointerEvents="box-none" + > + close())} + tabIndex={-1} + /> + + ) + })} + + + Math.floor(value), + ), + }, + !!fixedWidth && + fixedPosition === 'left' && { right: undefined }, + !!fixedWidth && + fixedPosition === 'right' && { left: undefined }, + !!fixedWidth && { width: fixedWidth }, { zIndex: 200, - ...Platform.select({ web: { cursor: 'default' } as any }), }, ]} - onPress={close && (() => close())} - tabIndex={-1} - /> - - )} - - - Math.floor(left), - ), - }, - enableAbsolutePositionAnimation && - absolutePositionTransition && - absolutePositionTransition.props && - absolutePositionTransition.props.right && { - right: absolutePositionTransition.props.right.to( - (right: number) => Math.floor(right), - ), - }, - !!fixedWidth && fixedPosition === 'left' && { right: undefined }, - !!fixedWidth && fixedPosition === 'right' && { left: undefined }, - !!fixedWidth && { width: fixedWidth }, - { - zIndex: 200, - }, - ]} - > - {header === 'header' ? ( - close()} - tooltip="Close" - /> - ) - } - style={{ paddingRight: contentPadding / 2 }} - /> - ) : header === 'spacing' ? ( - - ) : null} + > + {header === 'header' ? ( + close()} + tooltip="Close" + /> + ) + } + style={{ paddingRight: contentPadding / 2 }} + /> + ) : header === 'spacing' ? ( + + ) : null} - ( - {children} - )} - > - - - + ( + {children} + )} + > + + + - {!!inlineMode && } - + {!!inlineMode && } + + ) + }, ) }, ) diff --git a/packages/components/src/components/common/AccordionView.tsx b/packages/components/src/components/common/AccordionView.tsx index dbe8e4f83..1494e9db1 100644 --- a/packages/components/src/components/common/AccordionView.tsx +++ b/packages/components/src/components/common/AccordionView.tsx @@ -6,7 +6,7 @@ import { ScrollView, View, } from 'react-native' -import { useTransition } from 'react-spring/native' +import { useTransition } from '@react-spring/native' import { constants } from '@devhub/core' import { usePrevious } from '../../hooks/use-previous' @@ -31,25 +31,21 @@ export const AccordionView = React.memo((props: AccordionViewProps) => { const [isRenderEnabled, setIsRenderEnabled] = useState(isOpen) const immediate = constants.DISABLE_ANIMATIONS - const transitions = useTransition( - isOpen ? [true] : [], - isOpen ? ['accordion-view'] : [], - { - immediate, - config: getDefaultReactSpringAnimationConfig({ precision: 1 }), + const transition = useTransition(isOpen, { + immediate, + config: getDefaultReactSpringAnimationConfig({ precision: 1 }), - from: { height: 0 }, - enter: { height: isOpen ? size : 0 }, - leave: { height: 0 }, - update: { height: isOpen ? size : 0 }, - // onStart: () => { - // hasCompletedAnimationRef.current = false - // }, - onRest: () => { - hasCompletedAnimationRef.current = !!isOpen - }, + from: { height: 0 }, + enter: { height: isOpen ? size : 0 }, + leave: { height: 0 }, + update: { height: isOpen ? size : 0 }, + // onStart: () => { + // hasCompletedAnimationRef.current = false + // }, + onRest: () => { + hasCompletedAnimationRef.current = !!isOpen }, - ) + }) const handleContentSizeChange = useCallback( (_width: number, height: number) => { @@ -92,53 +88,44 @@ export const AccordionView = React.memo((props: AccordionViewProps) => { [onLayout, isRenderEnabled, children, handleContentSizeChange], ) - return ( - <> - {transitions.map( - (transition) => - !!(transition && transition.item && transition.props) && ( - + ) + }) }) AccordionView.displayName = 'AccordionView' diff --git a/packages/components/src/components/common/ProgressBar.tsx b/packages/components/src/components/common/ProgressBar.tsx index 5d0297379..95526f92e 100644 --- a/packages/components/src/components/common/ProgressBar.tsx +++ b/packages/components/src/components/common/ProgressBar.tsx @@ -1,7 +1,7 @@ import { ThemeColors } from '@devhub/core' import React, { useEffect, useRef } from 'react' import { AppState, InteractionManager, View } from 'react-native' -import { useSpring } from 'react-spring/native' +import { useSpring } from '@react-spring/native' import { sharedStyles } from '../../styles/shared' import { scaleFactor } from '../../styles/variables' diff --git a/packages/components/src/components/modals/AddColumnModal.tsx b/packages/components/src/components/modals/AddColumnModal.tsx index fe3e0dd2b..1b1e0e43f 100644 --- a/packages/components/src/components/modals/AddColumnModal.tsx +++ b/packages/components/src/components/modals/AddColumnModal.tsx @@ -6,7 +6,7 @@ import { import { rgba } from 'polished' import React, { useCallback, useLayoutEffect, useRef } from 'react' import { View } from 'react-native' -import { useSpring } from 'react-spring/native' +import { useSpring } from '@react-spring/native' import { useHover } from '../../hooks/use-hover' import { useReduxAction } from '../../hooks/use-redux-action' diff --git a/packages/components/src/components/modals/ModalRenderer.tsx b/packages/components/src/components/modals/ModalRenderer.tsx index a3f6452e2..900a3f70c 100644 --- a/packages/components/src/components/modals/ModalRenderer.tsx +++ b/packages/components/src/components/modals/ModalRenderer.tsx @@ -1,7 +1,7 @@ import { constants, ModalPayloadWithIndex } from '@devhub/core' import React, { useEffect } from 'react' import { BackHandler, Dimensions, StyleSheet, View } from 'react-native' -import { useTransition } from 'react-spring/native' +import { useTransition } from '@react-spring/native' import { SettingsModal } from '../../components/modals/SettingsModal' import { usePrevious } from '../../hooks/use-previous' @@ -151,61 +151,53 @@ export function ModalRenderer(props: ModalRendererProps) { const size = columnWidth + (renderSeparator ? separatorThickSize : 0) - const overlayTransition = useTransition( - currentOpenedModal ? [true] : [], - () => 'modal-overlay', - { - reset: false, - unique: true, - immediate: immediate || sizename <= '2-medium', - config: getDefaultReactSpringAnimationConfig({ precision: 0.01 }), - from: { opacity: 0 }, - enter: { opacity: 0.75 }, - leave: { opacity: 0 }, - }, - )[0] + const overlayTransition = useTransition(currentOpenedModal, { + immediate: immediate || sizename <= '2-medium', + config: getDefaultReactSpringAnimationConfig({ precision: 0.01 }), + from: { opacity: 0 }, + enter: { opacity: 0.75 }, + leave: { opacity: 0 }, + }) - const modalTransitions = useTransition< - ModalPayloadWithIndex | undefined, - any - >(modalStack, (item) => `modal-stack-${item && item.name}`, { - reset: false, + const modalTransition = useTransition(modalStack, { config: getDefaultReactSpringAnimationConfig({ precision: 1 }), immediate, ...(appOrientation === 'portrait' ? { - from: (item: ModalPayloadWithIndex) => - (item.index === 0 && modalStack.length) || - (item.index > 0 && !modalStack.length) + from: (item) => + (item?.index === 0 && modalStack.length) || + (item?.index && !modalStack.length) ? { top: Dimensions.get('window').height, left: 0 } : { top: 0, left: size }, enter: { top: 0, left: 0 }, - update: (item: ModalPayloadWithIndex) => - modalStack.length > 1 && item.index !== modalStack.length - 1 + update: (item) => + modalStack.length > 1 && item?.index !== modalStack.length - 1 ? { top: 0, left: -50 } : { top: 0, left: 0 }, - leave: (item: ModalPayloadWithIndex) => - item.index === 0 || !modalStack.length + leave: (item) => + item?.index === 0 || !modalStack.length ? { top: Dimensions.get('window').height, left: 0 } : { top: 0, left: size }, } : { - from: (item: ModalPayloadWithIndex) => - (item.index === 0 && modalStack.length && !previouslyOpenedModal) || - (item.index > 0 && !modalStack.length) + from: (item) => + (item?.index === 0 && + modalStack.length && + !previouslyOpenedModal) || + (item?.index && !modalStack.length) ? { left: -size } : { left: size }, enter: { left: 0 }, - update: (item: ModalPayloadWithIndex) => - item.index !== modalStack.length - 1 + update: (item) => + item?.index !== modalStack.length - 1 ? { left: -size / 3 } : { left: 0 }, - leave: (item: ModalPayloadWithIndex) => - item.index >= modalStack.length && + leave: (item) => + (item?.index ?? -1) >= modalStack.length && modalStack.length && previouslyOpenedModal && - previouslyOpenedModal.name === item.name && + previouslyOpenedModal.name === item?.name && previousModalStack && previousModalStack[0] && previousModalStack[0].name === (modalStack[0] && modalStack[0].name) @@ -214,12 +206,13 @@ export function ModalRenderer(props: ModalRendererProps) { }), }) - const separatorTransitions = useTransition( + const separatorTransition = useTransition( renderSeparator && sizename !== '2-medium' && modalStack.length ? [(modalStack[0] && modalStack[0]!.name) || ''] : [], - (item) => `modal-separator-${item}`, { + keys: (item: ModalPayloadWithIndex | undefined) => + `modal-separator-${item}`, reset: false, unique: true, config: getDefaultReactSpringAnimationConfig({ precision: 1 }), @@ -233,102 +226,101 @@ export function ModalRenderer(props: ModalRendererProps) { return ( <> - {!!overlayTransition && ( - - closeAllModals()} - tabIndex={-1} - /> - + {overlayTransition( + ({ opacity }, overlayItem) => + !!overlayItem && ( + + closeAllModals()} + tabIndex={-1} + /> + + ), )} - {!!modalTransitions.length && ( - - - {modalTransitions.map( - ({ key, item, props: { width, ...animatedStyle } }) => - !!item && ( - - {renderModal(item)} - - ), - )} - - - {separatorTransitions.map( - ({ key, item, props: animatedStyle }) => - !!item && ( + {modalTransition( + (modalAnimatedStyle, modalItem) => + !!modalItem && ( + + - + {renderModal(modalItem)} - ), - )} - + + + {separatorTransition( + (separatorAnimatedStyle, separatorItem) => + !!separatorItem && ( + + + + ), + )} + + ), )} ) diff --git a/packages/components/src/utils/helpers/animations.ts b/packages/components/src/utils/helpers/animations.ts index aff644848..f3a9941b9 100644 --- a/packages/components/src/utils/helpers/animations.ts +++ b/packages/components/src/utils/helpers/animations.ts @@ -1,4 +1,4 @@ -import { SpringConfig } from 'react-spring/native' +import { SpringConfig } from '@react-spring/native' export function getDefaultReactSpringAnimationConfig( config?: SpringConfig & { precision?: number }, @@ -7,7 +7,7 @@ export function getDefaultReactSpringAnimationConfig( clamp: true, friction: 100, tension: 1500, - velocity: 40, + velocity: 0.04, ...config, } } diff --git a/yarn.lock b/yarn.lock index bb7b7f35f..474659f8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2057,17 +2057,7 @@ hoist-non-react-statics "^3.3.2" react-native-safe-area-view "^0.14.9" -"@react-spring/addons@^9.0.0-beta.33": - version "9.0.0-beta.33" - resolved "https://registry.npmjs.org/@react-spring/addons/-/addons-9.0.0-beta.33.tgz#0948301c271758f7a52aa39a1d96d4db65c6dd9b" - integrity sha512-/QJ5vcq54oljT1n4dSx9maYGaIKzz5WRuKGa12fhLD2JsYo9syTc9S3VH4qmAM4pkbggUQdiaA/AJWack4NF7A== - dependencies: - "@babel/runtime" "^7.3.1" - "@react-spring/animated" "^9.0.0-beta.33" - "@react-spring/core" "^9.0.0-beta.33" - use-memo-one "^1.1.0" - -"@react-spring/animated@9.0.0-rc.3", "@react-spring/animated@^9.0.0-beta.33": +"@react-spring/animated@9.0.0-rc.3": version "9.0.0-rc.3" resolved "https://registry.npmjs.org/@react-spring/animated/-/animated-9.0.0-rc.3.tgz#e792cb76aacecfc78db2be6020ac11ce96503eb5" integrity sha512-dAvgtKhkYpzzr+EkmZ4ZuJ5CujxCW0LaT109DvO/2MQNk3EWIxcgl+ik4tSulSbgau1GN8RlkRKyDp0wISdQ3Q== @@ -2076,7 +2066,7 @@ "@react-spring/shared" "9.0.0-rc.3" react-layout-effect "^1.0.1" -"@react-spring/core@9.0.0-rc.3", "@react-spring/core@^9.0.0-beta.33": +"@react-spring/core@9.0.0-rc.3": version "9.0.0-rc.3" resolved "https://registry.npmjs.org/@react-spring/core/-/core-9.0.0-rc.3.tgz#c8e697573936c525bd0f6ca0c0869f75c86e8a83" integrity sha512-3OzsVFxpfMJNkkQj8TwAH3NhUAX76AXu6WkslQF4EgBeEoG5eY3m+VvM9RsAsGWDuBKpscZ/wBpFt5Ih6KdGHA== @@ -2087,17 +2077,7 @@ react-layout-effect "^1.0.1" use-memo-one "^1.1.0" -"@react-spring/konva@^9.0.0-beta.33": - version "9.0.0-rc.3" - resolved "https://registry.npmjs.org/@react-spring/konva/-/konva-9.0.0-rc.3.tgz#7bad631eb59f141001d668267314ca40546ecf97" - integrity sha512-uampLRgrHIqA3ilnheePUVEUE+fdeipXORI4XZJFsORP01CUJeJCxBwMagaxvsHJAtuNErMI/IebE1T2W8i5qA== - dependencies: - "@babel/runtime" "^7.3.1" - "@react-spring/animated" "9.0.0-rc.3" - "@react-spring/core" "9.0.0-rc.3" - "@react-spring/shared" "9.0.0-rc.3" - -"@react-spring/native@^9.0.0-beta.33": +"@react-spring/native@9.0.0-rc.3": version "9.0.0-rc.3" resolved "https://registry.npmjs.org/@react-spring/native/-/native-9.0.0-rc.3.tgz#863b8278ea6064385c4fffaaed40316e4a2acaa8" integrity sha512-7JSixJLfzg8V0IrgyGS3gGr2v8CGh4Kym15Htp3CJq74GFBJMyaQS0KaMjieXnw5alTpQoeGBESfA3v5dPlPYg== @@ -2117,36 +2097,6 @@ fluids "^0.1.6" tslib "^1.11.1" -"@react-spring/three@^9.0.0-beta.33": - version "9.0.0-rc.3" - resolved "https://registry.npmjs.org/@react-spring/three/-/three-9.0.0-rc.3.tgz#bbfa7863c96ed8fa200cbff69222763c00977eef" - integrity sha512-H55T+Dnck+hsJ8WgE+tb89ngX1E1lDOpMBG4mGzNLGok6XgGqN0VBsHRN3QDl+aPfmJI1BPFPR6b6WbhwqRNbw== - dependencies: - "@babel/runtime" "^7.3.1" - "@react-spring/animated" "9.0.0-rc.3" - "@react-spring/core" "9.0.0-rc.3" - "@react-spring/shared" "9.0.0-rc.3" - -"@react-spring/web@^9.0.0-beta.34": - version "9.0.0-rc.3" - resolved "https://registry.npmjs.org/@react-spring/web/-/web-9.0.0-rc.3.tgz#da977382f91d9af4c400e4aa7dc37d3db07b87e0" - integrity sha512-rEvipblmihiz8+Eo01zDp5dqWn6XfYk8q2rlN9c18YIOL4o6nuY/VplDoocUMHYfH4liurpO4o1QudKOO1nAiQ== - dependencies: - "@babel/runtime" "^7.3.1" - "@react-spring/animated" "9.0.0-rc.3" - "@react-spring/core" "9.0.0-rc.3" - "@react-spring/shared" "9.0.0-rc.3" - -"@react-spring/zdog@^9.0.0-beta.33": - version "9.0.0-rc.3" - resolved "https://registry.npmjs.org/@react-spring/zdog/-/zdog-9.0.0-rc.3.tgz#00f611042b3761b984d0ca2c98da7dddcc11f081" - integrity sha512-fl2JI098sfOJ+BaS9xCrnz8NSimL8yPrVwO0lHSpXLn/q3o3MYmRAeJnZQv8yDtT6isTHua6Tfb9vWuZWEXSmA== - dependencies: - "@babel/runtime" "^7.3.1" - "@react-spring/animated" "9.0.0-rc.3" - "@react-spring/core" "9.0.0-rc.3" - "@react-spring/shared" "9.0.0-rc.3" - "@redux-saga/core@^1.1.1": version "1.1.3" resolved "https://registry.npmjs.org/@redux-saga/core/-/core-1.1.3.tgz#3085097b57a4ea8db5528d58673f20ce0950f6a4" @@ -13882,20 +13832,6 @@ react-scripts@3.4.3: optionalDependencies: fsevents "2.1.2" -react-spring@9.0.0-beta.34: - version "9.0.0-beta.34" - resolved "https://registry.npmjs.org/react-spring/-/react-spring-9.0.0-beta.34.tgz#909fdccec45b15f317cabe0d4746e636b60e39ed" - integrity sha512-Ey+Zg/jS2b/uaT6MlvMLnnNZ+N16Gc6r/CAwduC1+jy9UnB/fYnMMflZPemkGVEpZ+T9ef5FvWknw4ytnGl4zw== - dependencies: - "@babel/runtime" "^7.3.1" - "@react-spring/addons" "^9.0.0-beta.33" - "@react-spring/core" "^9.0.0-beta.33" - "@react-spring/konva" "^9.0.0-beta.33" - "@react-spring/native" "^9.0.0-beta.33" - "@react-spring/three" "^9.0.0-beta.33" - "@react-spring/web" "^9.0.0-beta.34" - "@react-spring/zdog" "^9.0.0-beta.33" - react-stripe-elements@5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/react-stripe-elements/-/react-stripe-elements-5.0.1.tgz#9030eb84ca06ecda4009769d09937e1cd65d2ec7"