diff --git a/package.json b/package.json index 7229c84..f0ccd02 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "react-redux": "^7.2.2", "react-router-dom": "^5.2.0", "react-scripts": "4.0.0", + "react-transition-group": "^4.4.1", "redux": "^4.0.5", "redux-devtools-extension": "^2.13.8", "redux-thunk": "^2.3.0", diff --git a/src/components/basket/basket.css b/src/components/basket/basket.css new file mode 100644 index 0000000..352c99b --- /dev/null +++ b/src/components/basket/basket.css @@ -0,0 +1,17 @@ +.basket-animation-enter { + opacity: 0; + transform: scale(0.9); +} +.basket-animation-enter-active { + opacity: 1; + transform: translateX(0); + transition: opacity 500ms, transform 500ms; +} +.basket-animation-exit { + opacity: 1; +} +.basket-animation-exit-active { + opacity: 0; + transform: scale(0.9); + transition: opacity 500ms, transform 500ms; +} diff --git a/src/components/basket/basket.js b/src/components/basket/basket.js index 10083a2..0285b6f 100644 --- a/src/components/basket/basket.js +++ b/src/components/basket/basket.js @@ -2,8 +2,11 @@ import React from 'react'; import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; import { createStructuredSelector } from 'reselect'; +import { CSSTransition, TransitionGroup } from 'react-transition-group'; import styles from './basket.module.css'; +import './basket.css'; + import BasketRow from './basket-row'; import BasketItem from './basket-item'; import Button from '../button'; @@ -27,15 +30,22 @@ function Basket({ title = 'Basket', total, orderProducts }) {

{({ name }) => `${name}'s ${title}`}

- {orderProducts.map(({ product, amount, subtotal, restaurantId }) => ( - - ))} + + {orderProducts.map(({ product, amount, subtotal, restaurantId }) => ( + + + + ))} +
diff --git a/yarn.lock b/yarn.lock index 550ec01..c224890 100644 --- a/yarn.lock +++ b/yarn.lock @@ -970,7 +970,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== @@ -3818,6 +3818,11 @@ cssstyle@^2.2.0: dependencies: cssom "~0.3.6" +csstype@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -4096,6 +4101,14 @@ dom-converter@^0.2: dependencies: utila "~0.4" +dom-helpers@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" + integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -9490,6 +9503,16 @@ react-test-renderer@^17.0.0-0: react-shallow-renderer "^16.13.1" scheduler "^0.20.1" +react-transition-group@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" + integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"