diff --git a/src/course-search/ClearCurrentRefinements.jsx b/src/course-search/ClearCurrentRefinements.jsx
index 7c59c674..3021511a 100644
--- a/src/course-search/ClearCurrentRefinements.jsx
+++ b/src/course-search/ClearCurrentRefinements.jsx
@@ -6,7 +6,7 @@ import { clearRefinementsAction } from './data/actions';
export const CLEAR_ALL_TEXT = 'clear all';
-const ClearCurrentRefinements = ({ className, variant }) => {
+const ClearCurrentRefinements = ({ className, variant, ...props }) => {
const { dispatch } = useContext(SearchContext);
/**
@@ -23,6 +23,7 @@ const ClearCurrentRefinements = ({ className, variant }) => {
className={className}
variant={variant}
onClick={handleClearAllRefinementsClick}
+ {...props}
>
{CLEAR_ALL_TEXT}
diff --git a/src/course-search/CurrentRefinements.jsx b/src/course-search/CurrentRefinements.jsx
index 0b16a031..3a2dd499 100644
--- a/src/course-search/CurrentRefinements.jsx
+++ b/src/course-search/CurrentRefinements.jsx
@@ -1,5 +1,6 @@
import React, { useContext, useMemo, useState } from 'react';
import PropTypes from 'prop-types';
+import classNames from 'classnames';
import { Badge, Button } from '@edx/paragon';
import { connectCurrentRefinements } from 'react-instantsearch-dom';
@@ -17,8 +18,9 @@ import {
} from './data/hooks';
import { SearchContext } from './SearchContext';
import { removeFromRefinementArray, deleteRefinementAction } from './data/actions';
+import { STYLE_VARIANTS } from '../constants';
-export const CurrentRefinementsBase = ({ items }) => {
+export const CurrentRefinementsBase = ({ items, variant }) => {
if (!items || !items.length) {
return null;
}
@@ -67,7 +69,7 @@ export const CurrentRefinementsBase = ({ items }) => {
{visibleActiveRefinements.map(item => (
handleRefinementBadgeClick(item)}
>
@@ -80,7 +82,7 @@ export const CurrentRefinementsBase = ({ items }) => {
{!showAllRefinements && activeRefinementsAsFlatArray.length > NUM_CURRENT_REFINEMENTS_TO_DISPLAY && (
setShowAllRefinements(true)}
>
@@ -92,23 +94,39 @@ export const CurrentRefinementsBase = ({ items }) => {
{showAllRefinements && (
)}
-
+
);
};
+CurrentRefinementsBase.defaultProps = {
+ variant: STYLE_VARIANTS.inverse,
+};
+
CurrentRefinementsBase.propTypes = {
items: PropTypes.arrayOf(PropTypes.shape()).isRequired,
+ variant: PropTypes.oneOf(Object.values(STYLE_VARIANTS)),
};
export default connectCurrentRefinements(CurrentRefinementsBase);
diff --git a/src/course-search/FacetItem.jsx b/src/course-search/FacetItem.jsx
index 9a619ce4..b2855c3f 100644
--- a/src/course-search/FacetItem.jsx
+++ b/src/course-search/FacetItem.jsx
@@ -2,28 +2,37 @@ import React from 'react';
import PropTypes from 'prop-types';
import { Input, Dropdown } from '@edx/paragon';
import classNames from 'classnames';
+import { STYLE_VARIANTS } from '../constants';
const FacetItem = ({
- handleInputOnChange, item, isChecked,
+ handleInputOnChange, item, isChecked, variant,
}) => (
handleInputOnChange(item)}
- className="position-relative mr-2"
+ className="facet-item position-relative mr-2 mb-2"
/>
{item.label}
{item.count && (
-
+
{item.count}
)}
);
+FacetItem.defaultProps = {
+ variant: STYLE_VARIANTS.inverse,
+};
+
FacetItem.propTypes = {
handleInputOnChange: PropTypes.func.isRequired,
isChecked: PropTypes.bool.isRequired,
@@ -31,6 +40,7 @@ FacetItem.propTypes = {
count: PropTypes.number,
label: PropTypes.string.isRequired,
}).isRequired,
+ variant: PropTypes.oneOf(Object.values(STYLE_VARIANTS)),
};
export default FacetItem;
diff --git a/src/course-search/FacetListBase.jsx b/src/course-search/FacetListBase.jsx
index 09216ded..b48c96b8 100644
--- a/src/course-search/FacetListBase.jsx
+++ b/src/course-search/FacetListBase.jsx
@@ -62,6 +62,7 @@ const FacetListBase = ({
handleInputOnChange={handleInputOnChange}
item={item}
isChecked={isChecked}
+ variant={variant}
/>
);
});
diff --git a/src/course-search/SearchFilters.jsx b/src/course-search/SearchFilters.jsx
index f0a3f096..bd342364 100644
--- a/src/course-search/SearchFilters.jsx
+++ b/src/course-search/SearchFilters.jsx
@@ -95,7 +95,7 @@ const SearchFilters = ({ variant }) => {
{searchFacets}
-
+
>
)}
>
diff --git a/src/course-search/styles/_CurrentRefinements.scss b/src/course-search/styles/_CurrentRefinements.scss
new file mode 100644
index 00000000..1fe78299
--- /dev/null
+++ b/src/course-search/styles/_CurrentRefinements.scss
@@ -0,0 +1,12 @@
+.fe__refinement-badge {
+ border-radius: 0;
+
+ &.fe__refinement-badge:first-child {
+ // overrides bootstrap margin for first child
+ margin-left: 0 !important;
+ }
+}
+
+.fe__current-refinement-button--inverse {
+ color: $white;
+}
diff --git a/src/course-search/styles/_FacetList.scss b/src/course-search/styles/_FacetList.scss
index ff8d5be3..baca6f57 100644
--- a/src/course-search/styles/_FacetList.scss
+++ b/src/course-search/styles/_FacetList.scss
@@ -25,6 +25,8 @@ $facet-dropdown-max-height: 250px;
.dropdown-item {
padding-left: 30px;
white-space: break-spaces;
+ display: flex;
+ align-items: center;
}
}
}
@@ -38,4 +40,10 @@ $facet-dropdown-max-height: 250px;
}
}
}
+
+}
+
+.bg-brand-primary--default {
+ background-color: $primary-700;
+ color: $white;
}
diff --git a/src/course-search/styles/_index.scss b/src/course-search/styles/_index.scss
index 5e812089..6deae242 100644
--- a/src/course-search/styles/_index.scss
+++ b/src/course-search/styles/_index.scss
@@ -1,3 +1,4 @@
+@import "./CurrentRefinements";
@import "./FacetList";
@import "./MobileSearchFilters";
@import "./SearchPagination";