From 170705440a65543eeb468b890a7831575fcae3bf Mon Sep 17 00:00:00 2001 From: Evelyn Eastmond <evhan55@gmail.com> Date: Wed, 10 Apr 2019 13:46:10 -0400 Subject: [PATCH] Adding toggle state to Cards. Using toggle state to set the CSS state. --- src/components/cards/card.css | 12 ++++++++++++ src/components/cards/cards.jsx | 19 ++++++++++++------- src/containers/cards.jsx | 1 + src/reducers/cards.js | 3 ++- src/reducers/gui.js | 1 + 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/components/cards/card.css b/src/components/cards/card.css index 9589590d4..04e63a6a6 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 dec0605f1..ae67cc8fb 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 3fec66d30..7492b367a 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 abd018906..ac0a0dced 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 071f9d93b..fa8b04317 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, -- GitLab