From a6dac66f8e365c6c2adf7b74ecc4030e19c93e47 Mon Sep 17 00:00:00 2001 From: Vesa Luusua Date: Tue, 13 Aug 2019 22:33:54 +0300 Subject: [PATCH] FieldCheckbox: add useSuccessColor prop --- .../FieldCheckbox/FieldCheckbox.css | 21 +++++++++++ src/components/FieldCheckbox/FieldCheckbox.js | 35 ++++++++++++++----- 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/components/FieldCheckbox/FieldCheckbox.css b/src/components/FieldCheckbox/FieldCheckbox.css index a295dbf0..50e3c161 100644 --- a/src/components/FieldCheckbox/FieldCheckbox.css +++ b/src/components/FieldCheckbox/FieldCheckbox.css @@ -17,6 +17,13 @@ stroke: var(--marketplaceColor); } + /* successColor version */ + &:hover + label .boxSuccess, + &:focus + label .boxSuccess, + &:checked + label .boxSuccess { + stroke: var(--successColor); + } + /* Display the "check" when checked */ &:checked + label .checked { display: inline; @@ -24,6 +31,13 @@ stroke-width: 1px; } + /* Display the "check" when checked */ + &:checked + label .checkedSuccess { + display: inline; + stroke: var(--successColor); + stroke-width: 1px; + } + /* Hightlight the text on checked, hover and focus */ &:focus + label .text, &:hover + label .text, @@ -54,12 +68,19 @@ display: none; fill: var(--marketplaceColor); } +.checkedSuccess { + display: none; + fill: var(--successColor); +} +.boxSuccess, .box { stroke: var(--matterColorAnti); } .text { +} +.textRoot { @apply --marketplaceListingAttributeFontStyles; color: var(--matterColor); margin-top: -1px; diff --git a/src/components/FieldCheckbox/FieldCheckbox.js b/src/components/FieldCheckbox/FieldCheckbox.js index 5904e5a6..45212ac1 100644 --- a/src/components/FieldCheckbox/FieldCheckbox.js +++ b/src/components/FieldCheckbox/FieldCheckbox.js @@ -6,16 +6,17 @@ import { Field } from 'react-final-form'; import css from './FieldCheckbox.css'; const IconCheckbox = props => { + const { className, checkedClassName, boxClassName } = props; return ( - + @@ -29,12 +30,21 @@ const IconCheckbox = props => { ); }; -IconCheckbox.defaultProps = { className: null }; +IconCheckbox.defaultProps = { className: null, checkedClassName: null, boxClassName: null }; -IconCheckbox.propTypes = { className: string }; +IconCheckbox.propTypes = { className: string, checkedClassName: string, boxClassName: string }; const FieldCheckboxComponent = props => { - const { rootClassName, className, svgClassName, id, label, ...rest } = props; + const { + rootClassName, + className, + svgClassName, + textClassName, + id, + label, + useSuccessColor, + ...rest + } = props; const classes = classNames(rootClassName || css.root, className); const checkboxProps = { @@ -45,14 +55,21 @@ const FieldCheckboxComponent = props => { ...rest, }; + const successColorVariantMaybe = useSuccessColor + ? { + checkedClassName: css.checkedSuccess, + boxClassName: css.boxSuccess, + } + : {}; + return ( ); @@ -62,6 +79,7 @@ FieldCheckboxComponent.defaultProps = { className: null, rootClassName: null, svgClassName: null, + textClassName: null, label: null, }; @@ -69,6 +87,7 @@ FieldCheckboxComponent.propTypes = { className: string, rootClassName: string, svgClassName: string, + textClassName: string, // Id is needed to connect the label with input. id: string.isRequired,