Skip to content

Commit ed4f12d

Browse files
authored
Add an expanded classname to the facet container (#114)
* Add expanded class so we can apply styles * Lint fix * Prop to preserve facet items when not expanded * Formatting
1 parent 3b4d0ec commit ed4f12d

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

src/facet_display/Facet.tsx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,29 @@ interface Props {
1414
selected: string[]
1515
onUpdate: React.ChangeEventHandler<HTMLInputElement>
1616
expandedOnLoad: boolean
17+
preserveItems?: boolean
1718
}
1819

1920
function SearchFacet(props: Props) {
20-
const { name, title, results, selected, onUpdate, expandedOnLoad } = props
21+
const {
22+
name,
23+
title,
24+
results,
25+
selected,
26+
onUpdate,
27+
expandedOnLoad,
28+
preserveItems
29+
} = props
2130

2231
const [showFacetList, setShowFacetList] = useState(expandedOnLoad)
2332
const [showAllFacets, setShowAllFacets] = useState(false)
2433

2534
const titleLineIcon = showFacetList ? "expand_less" : "expand_more"
2635

2736
return results && results.length === 0 ? null : (
28-
<div className="facets base-facet">
37+
<div
38+
className={`facets base-facet${showFacetList ? " facets-expanded" : ""}`}
39+
>
2940
<button
3041
className="filter-section-button"
3142
type="button"
@@ -37,7 +48,7 @@ function SearchFacet(props: Props) {
3748
{titleLineIcon}
3849
</i>
3950
</button>
40-
{showFacetList ? (
51+
{showFacetList || preserveItems ? (
4152
<>
4253
{results ?
4354
results.map((bucket, i) =>

src/facet_display/FacetDisplay.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ const AvailableFacets: React.FC<Omit<FacetDisplayProps, "clearAllFilters">> = ({
129129
}
130130
selected={activeFacets[facetSettings.name] || []}
131131
expandedOnLoad={facetSettings.expandedOnLoad}
132+
preserveItems={facetSettings.preserveItems}
132133
/>
133134
)
134135
} else if (facetSettings.type === "filterable") {
@@ -146,6 +147,7 @@ const AvailableFacets: React.FC<Omit<FacetDisplayProps, "clearAllFilters">> = ({
146147
}
147148
selected={activeFacets[facetSettings.name] || []}
148149
expandedOnLoad={facetSettings.expandedOnLoad}
150+
preserveItems={facetSettings.preserveItems}
149151
/>
150152
)
151153
} else if (facetSettings.type === "group") {

src/facet_display/FilterableFacet.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,19 @@ interface Props {
1818
selected: string[]
1919
onUpdate: React.ChangeEventHandler<HTMLInputElement>
2020
expandedOnLoad: boolean
21+
preserveItems?: boolean
2122
}
2223

2324
function FilterableFacet(props: Props) {
24-
const { name, title, results, selected, onUpdate, expandedOnLoad } = props
25+
const {
26+
name,
27+
title,
28+
results,
29+
selected,
30+
onUpdate,
31+
expandedOnLoad,
32+
preserveItems
33+
} = props
2534
const [showFacetList, setShowFacetList] = useState(expandedOnLoad)
2635

2736
const [filterText, setFilterText] = useState("")
@@ -45,7 +54,11 @@ function FilterableFacet(props: Props) {
4554

4655
const buckets = (filteredResults || results) ?? []
4756
return results && results.length === 0 ? null : (
48-
<div className="facets filterable-facet">
57+
<div
58+
className={`facets filterable-facet${
59+
showFacetList ? " facets-expanded" : ""
60+
}`}
61+
>
4962
<button
5063
className="filter-section-button"
5164
type="button"
@@ -57,7 +70,7 @@ function FilterableFacet(props: Props) {
5770
{titleLineIcon}
5871
</i>
5972
</button>
60-
{showFacetList ? (
73+
{showFacetList || preserveItems ? (
6174
<>
6275
<div className="input-wrapper">
6376
<input

src/facet_display/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export type SingleFacetOptions = {
2323
name: FacetKey
2424
title: string
2525
expandedOnLoad: boolean
26+
preserveItems?: boolean
2627
labelFunction?: ((value: string) => string) | null
2728
}
2829

0 commit comments

Comments
 (0)