diff --git a/src/components/cards/card.css b/src/components/cards/card.css index 9589590d40fe42ba18dfe819388abe477bed9305..04e63a6a6a10d1186b5e5536c074514225cf181a 100644 --- a/src/components/cards/card.css +++ b/src/components/cards/card.css @@ -34,6 +34,10 @@ border-bottom-right-radius: 0.75rem; } +.right-card-hidden { + display: none; +} + .left-card::after, .right-card::after { content: ""; position: absolute; @@ -62,6 +66,10 @@ transition: all 0.25s ease; } +.right-button-hidden { + display: none; +} + .left-button:hover, .right-button:hover { box-shadow: 0 0 0 6px $extensions-transparent; transform: scale(1.125); @@ -155,6 +163,10 @@ text-align: center; } +.step-body-hidden { + display: none; +} + .step-video { height: 256px; } diff --git a/src/components/cards/cards.jsx b/src/components/cards/cards.jsx index dec0605f12a60497d61fb949dfc6e1bd22184bf0..ae67cc8fb476abd4704ff5399c99f2d5a751a575 100644 --- a/src/components/cards/cards.jsx +++ b/src/components/cards/cards.jsx @@ -14,7 +14,7 @@ import closeIcon from './icon--close.svg'; import {translateVideo} from '../../lib/libraries/decks/translate-video.js'; import {translateImage} from '../../lib/libraries/decks/translate-image.js'; -const CardHeader = ({onCloseCards, onToggleCards, onShowAll, totalSteps, step}) => ( +const CardHeader = ({onCloseCards, onToggleCards, onShowAll, totalSteps, step, toggle}) => ( <div className={styles.headerButtons}> <div className={styles.allButton} @@ -46,7 +46,7 @@ const CardHeader = ({onCloseCards, onToggleCards, onShowAll, totalSteps, step}) className={styles.shrinkButton} onClick={onToggleCards} > - {'Shrink'} + {toggle ? 'Shrink' : 'Expand'} </div> <div className={styles.removeButton} @@ -115,13 +115,13 @@ ImageStep.propTypes = { title: PropTypes.node.isRequired }; -const NextPrevButtons = ({isRtl, onNextStep, onPrevStep}) => ( +const NextPrevButtons = ({isRtl, onNextStep, onPrevStep, toggle}) => ( <Fragment> {onNextStep ? ( <div> - <div className={isRtl ? styles.leftCard : styles.rightCard} /> + <div className={isRtl ? styles.leftCard : (toggle ? styles.rightCard : styles.rightCardHidden)} /> <div - className={isRtl ? styles.leftButton : styles.rightButton} + className={isRtl ? styles.leftButton : (toggle ? styles.rightButton : styles.rightButtonHidden)} onClick={onNextStep} > <img @@ -151,13 +151,15 @@ const NextPrevButtons = ({isRtl, onNextStep, onPrevStep}) => ( NextPrevButtons.propTypes = { isRtl: PropTypes.bool, onNextStep: PropTypes.func, - onPrevStep: PropTypes.func + onPrevStep: PropTypes.func, + toggle: PropTypes.bool.isRequired }; CardHeader.propTypes = { onCloseCards: PropTypes.func.isRequired, onShowAll: PropTypes.func.isRequired, onToggleCards: PropTypes.func.isRequired, step: PropTypes.number, + toggle: PropTypes.bool.isRequired, totalSteps: PropTypes.number }; @@ -236,6 +238,7 @@ const Cards = props => { onNextStep, onPrevStep, step, + toggle, ...posProps } = props; let {x, y} = posProps; @@ -266,12 +269,13 @@ const Cards = props => { <div className={styles.card}> <CardHeader step={step} + toggle={toggle} totalSteps={steps.length} onCloseCards={onCloseCards} onShowAll={onShowAll} onToggleCards={onToggleCards} /> - <div className={styles.stepBody}> + <div className={toggle ? styles.stepBody : styles.stepBodyHidden}> {steps[step].deckIds ? ( <PreviewsStep content={content} @@ -332,6 +336,7 @@ Cards.propTypes = { onStartDrag: PropTypes.func, onToggleCards: PropTypes.func.isRequired, step: PropTypes.number.isRequired, + toggle: PropTypes.bool.isRequired, x: PropTypes.number, y: PropTypes.number }; diff --git a/src/containers/cards.jsx b/src/containers/cards.jsx index 3fec66d304ceed3cee0acf7544632c9c4caa7bfa..7492b367a0243543acc92a3e95397d5450fd7859 100644 --- a/src/containers/cards.jsx +++ b/src/containers/cards.jsx @@ -47,6 +47,7 @@ const mapStateToProps = state => ({ content: state.scratchGui.cards.content, activeDeckId: state.scratchGui.cards.activeDeckId, step: state.scratchGui.cards.step, + toggle: state.scratchGui.cards.toggle, x: state.scratchGui.cards.x, y: state.scratchGui.cards.y, isRtl: state.locales.isRtl, diff --git a/src/reducers/cards.js b/src/reducers/cards.js index abd0189069e1b4d677af3e30bd6f95c54addf4ae..ac0a0dced204dced1e843f64d214fe4b9badb257 100644 --- a/src/reducers/cards.js +++ b/src/reducers/cards.js @@ -19,6 +19,7 @@ const initialState = { step: 0, x: 0, y: 0, + toggle: true, dragging: false }; @@ -31,7 +32,7 @@ const reducer = function (state, action) { }); case TOGGLE_CARDS: return Object.assign({}, state, { - visible: false + toggle: !state.toggle // TODO: make clearer }); case VIEW_CARDS: return Object.assign({}, state, { diff --git a/src/reducers/gui.js b/src/reducers/gui.js index 071f9d93bb4bee40ed8505faf2f0b5cb8132c58f..fa8b0431789cf9841b29fb05f04c1a5f9f0e7ade 100644 --- a/src/reducers/gui.js +++ b/src/reducers/gui.js @@ -107,6 +107,7 @@ const initTutorialCard = function (currentState, deckId) { visible: true, content: decks, activeDeckId: deckId, + toggle: true, step: 0, x: 0, y: 0,